๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

๋ฐฑ์ค€ - [BOJ 12094] A์™€ B

by ๐Ÿณ Laboon 2024. 2. 29.

๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์ ธ์ง€(BOJ)์—์„œ ์ œ๊ณต ๋˜๋Š” 12094๋ฒˆ ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋””(Greedy, ํƒ์š•๋ฒ•) ์œ ํ˜•์ด๋‹ค.

ํ•ด๋‹น ๋ฌธ์ œ๋Š” code.plus ์ค‘๊ธ‰ 1/3, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ฒŒ์‹œ๋œ ๋ฌธ์ œ์ด๋‹ค.


๋ฌธ์ œ

์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค.

์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜๋นˆ์ด๋Š” ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋‘ ๋ฌธ์ž์—ด S์™€ T๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, S๋ฅผ T๋กœ ๋ฐ”๊พธ๋Š” ๊ฒŒ์ž„์ด๋‹ค. ๋ฌธ์ž์—ด์„ ๋ฐ”๊ฟ€ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋ฌธ์ž์—ด์˜ ๋’ค์— A๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๊ณ  ๋’ค์— B๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ์ด์šฉํ•ด์„œ S๋ฅผ T๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— S๊ฐ€ ๋‘˜์งธ ์ค„์— T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ S์˜ ๊ธธ์ด ≤ 999, 2 ≤ T์˜ ๊ธธ์ด ≤ 1000, S์˜ ๊ธธ์ด < T์˜ ๊ธธ์ด)

์ถœ๋ ฅ

S๋ฅผ T๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์œผ๋ฉด 1์„ ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.


ํ’€์ด

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ๊ณจ๋“œ ๋‚œ์ด๋„์˜ ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ์น˜๊ณ ๋Š” ๋‚˜๋ฆ„ ์‰ฌ์› ๋‹ค.

์กฐ๊ฑด์ด ๋‹จ ๋‘๊ฐœ๋ฐ–์— ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

1. ๋ฌธ์ž์—ด ๋’ค์— A๋ฅผ ์ถ”๊ฐ€

2. ๋ฌธ์ž์—ด์„ ๋’ค์ง‘๊ณ  ๋’ค์— B์— ์ถ”๊ฐ€

 

์šฐ๋ฆฌ๋Š” A๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ์„ ๋•Œ,

1๋ฒˆ AA

2๋ฒˆ AB 

์ด 2๋ฒˆ์˜ ์—ฐ์‚ฐ์ด ์กด์žฌํ•˜๊ณ  S๊ฐ€ 1์ด๊ณ  T๊ฐ€ 1000์ผ ๋•Œ, 999๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค.

ํ•˜์ง€๋งŒ 1๋ฒˆ์˜ ์—ฐ์‚ฐ์— 2๊ฐœ์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ด 2^999์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋„ˆ๋ฌด ์–ด๋งˆ๋ฌด์‹œํ•œ ๋ณต์žก๋„์ด๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผํ• ๊นŒ?

์šฐ๋ฆฌ๋Š” S์— 1๋ฒˆ ์—ฐ์‚ฐ์œผ๋กœ A๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด S(A)๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

S์— 2๋ฒˆ ์—ฐ์‚ฐ์œผ๋กœ B๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด Reverse(S)(B)๋ผ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์—ฐ์‚ฐ์ด ๋๋‚˜๊ฒŒ ๋˜๋ฉด ๋งจ ๋’ค์—๋Š” A์™€ B๋งŒ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿผ ๋ฌธ์ž์—ด T์—์„œ ๊ฐ€์žฅ ๋์— A๊ฐ€ ์žˆ๋‹ค๋ฉด?

 

 

์œ„ ๊ทธ๋ฆผ์„ ์ž˜๋ณด๋ฉด 2๋ฒˆ์งธ T์—์„œ 1๋ฒˆ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด 1๋ฒˆ ์งธ T๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

3๋ฒˆ์งธ T์—์„œ 2๋ฒˆ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด 2๋ฒˆ์งธ T๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ด ๋…ผ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ T์˜ ๊ธธ์ด๊ฐ€ S์™€ ๊ฐ™์•„์งˆ ๋•Œ๊นŒ์ง€ A์™€ B๋ฅผ ์ œ๊ฑฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

/*
	dev-dot.tistory.com
	authored by jihwankim
	code.plus
*/

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int solve(string &s, string &t) {
	while(s.size() != t.size()) {
		char c = t.back();
		t.pop_back();
		if(c == 'B') {
			reverse(t.begin(), t.end());
		}
	}
	if(s == t) return 1;
	return 0;
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);
	
	string s, t;
	cin >> s >> t;
	cout << solve(s, t);
	
	return 0;
}

ํ•ด๊ฒฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ณด๊ธฐ

์Šคํƒ์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ณด๊ธฐ

 

์ฐธ๊ณ ํ•  ํฌ์ŠคํŠธ

 

์•„์ง ๋ฏธ์ž‘์„ฑ

๋ฌธ์ œ

 

https://www.acmicpc.net/problem/12904

 

12904๋ฒˆ: A์™€ B

์ˆ˜๋นˆ์ด๋Š” A์™€ B๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ์˜์–ด ๋‹จ์–ด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋†€๋ž๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ AB (Abdominal์˜ ์•ฝ์ž), BAA (์–‘์˜ ์šธ์Œ ์†Œ๋ฆฌ), AA (์šฉ์•”์˜ ์ข…๋ฅ˜), ABBA (์Šค์›จ๋ด ํŒ ๊ทธ๋ฃน)์ด ์žˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์‹ค์— ๋†€๋ž€ ์ˆ˜

www.acmicpc.net

https://code.plus/course/43

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘๊ธ‰ 1/3

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘๊ธ‰

code.plus