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

 

12904번: A와 B

수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수

www.acmicpc.net

 

 

[난이도] Gold5
[유형] 구현

[풀이]
결과 문자열 T의 뒤부터 확인하면서, A가 있으면 첫번째 규칙,
B가 있으면 두번째 규칙을 거꾸로 적용해주면서
T가 S가 되는 순간이 있으면 1을 아니면 0을 출력해주면 됩니다.

 

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string A,B;
int main(){
    cin >> A >> B;

    while(!B.empty()){
        if(A==B) {
            cout << "1";
            return 0;
        }
        if(B.back()=='A') B.pop_back();
        else {
            B.pop_back();
            reverse(B.begin(),B.end());
        }
    }
    cout << "0";
}


https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold5/12904.cpp

+ Recent posts