문제
#12904: A와 B
수빈은 A와 B로만 이루어진 영어 단어가 있다는 사실에 놀랐다. AB(Abdominal), BAA(Crying Sheep), AA(Art Lava), ABBA(Swedish pop group) 등이 대표적이다. 당신은 이 사실에 놀랄 것이다.
www.acmicpc.net
설명
코드는 간단하지만 솔루션 프로세스를 도출하는 것은 어려운 문제입니다.
S to T를 만드는 과정이 S to T를 만드는 과정보다 간단하다는 것을 깨달으면 쉽게 풀 수 있습니다.
첫 번째 조건문은 TA의 끝이 있으면 빼는 부분입니다.
과제에서 제안한 ‘문자열 끝에 A 추가’. 운영에 해당합니다.
두 번째 조건문은 끝이 TB이면 제거하고 배열을 뒤집습니다.
‘현을 뒤집고 끝에 B 플랫을 추가합니다.’ 운영에 해당합니다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
string S;
cin >> S;
string T;
cin >> T;
int result = 0;
while (1) {
if (S.size() == T.size()) {
if (S == T) result = 1;
break;
}
if (T(T.size()-1) == 'A') {
T.pop_back();
}
else if (T(T.size()-1) == 'B') {
T.pop_back();
reverse(T.begin(), T.end());
}
}
cout << result;
}