๋ฐฑ์ค ์จ๋ผ์ธ ์ ธ์ง(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
์๊ณ ๋ฆฌ์ฆ ์ค๊ธ 1/3
์๊ณ ๋ฆฌ์ฆ ์ค๊ธ
code.plus
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - [BOJ 22856] ํธ๋ฆฌ ์ํ (0) | 2024.07.08 |
---|---|
๋ฐฑ์ค - [BOJ 1865] ์ํ (0) | 2024.07.06 |
๋ฐฑ์ค - [BOJ 3085] ์ฌํ๊ฒ์ (0) | 2024.03.01 |
๋ฐฑ์ค - [BOJ 2109] ์ํ๊ฐ์ฐ (4) | 2024.02.29 |
๋ฐฑ์ค - [BOJ 12015] ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด 2 (1) | 2024.02.01 |