(백준) 12904 – A and B (C++)

질문

12904호: A와 B(acmicpc.net)

12904호: A와 B

수빈은 A와 B로만 이루어진 영어 단어가 있다는 사실에 놀랐다.

AB(복부), BAA(우는 양), AA(용암의 일종), ABBA(스웨덴 팝 밴드) 등이 대표적이다.

당신은 사실에 놀랄 수 있습니다

www.acmicpc.net

설명하다

코드는 간단하지만 솔루션을 도출하는 것은 어려운 문제입니다.

S를 T로 바꾸는 것보다 S를 T로 바꾸는 것이 더 쉽다는 것을 알게 되면 쉽게 고칠 수 있습니다.

첫 번째 조건문은 A로 끝나는 경우 T에서 빼는 부분입니다.

제목에 ‘문자열 끝에 A 추가’라는 메시지가 표시됩니다.

해당 작업.

두 번째 조건문은 T가 B로 끝나는 경우 이를 제거하고 배열을 뒤집습니다.

문자열을 뒤집고 끝에 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;
}