문제 풀이

[c++] 백준 12904 A와 B

미분당한 적분상수 2023. 3. 4. 18:02

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

 

12904번: A와 B

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

www.acmicpc.net

#include<bits/stdc++.h>
using namespace std;
bool check(string a, string b){
    int length = a.size();
    for(int i=0; i<length; i++){
        if(a[i] != b[i]) return 0;
    }
    return 1;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    string s,t; cin>>s>>t;
    //문제는 s를 연산에 따라 t로 바꾸는 문제이다
        //연산 1 : 문자열의 뒤에 A를 추가한다.
        //연산 2 : 문자열을 뒤집고 뒤에 B를 추가한다.
    //이 문제를 풀려면 t를 s로 바꿀 수 있는지 연산을 따라가며 확인한다
        //연산 1 : 문자열의 뒤의 A를 삭제한다.
        //연산 2 : 문자열의 뒤의 B를 삭제하고 문자열을 뒤집는다.
    int index = t.size()-1;
    for(int i=index; i>=s.size(); i--){
        if(t[i] == 'A'){
            t.erase(t.begin()+i);
        }
        else{
            t.erase(t.begin()+i);
            reverse(t.begin(),t.end());
        }
    }
    bool ans = check(t,s);
    cout << ans;
    return 0;
}