Algorithm/Baekjoon

[백준 12904 - c++] A와 B

tjddneva 2022. 3. 30. 00:09

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

 

12904번: A와 B

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

www.acmicpc.net

 

보자마자 거꾸로 가면 된다는 거는 알았는데 치명적인 예외가 있었다. t 가 s 보다 짧은 예외도 들어올 수 있다;;;;;

그 예외를 처리해주니 맞았다!

 

코드를 보면 심플하니 바로 이해가 될 것이다.

#include <iostream>
#include <algorithm>

using namespace std;

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);

    string s, t;
    cin >> s >> t;

    for (int i = t.length()-1; i >= 0; i--) {
        
        if (t.length() <= s.length()) {
            if (t == s) {
                cout << 1;
                return 0;
            }
            else {
                cout << 0;
                return 0;
            }
        }
        
        if (t[i] == 'B') {
            t = t.substr(0, i);
            reverse(t.begin(), t.end());
        }
        else t = t.substr(0, i);

    }
}

 

'Algorithm > Baekjoon' 카테고리의 다른 글

[백준 11049 - Java] 행렬 곱셈 순서  (0) 2022.02.24
[백준 11048 - Java] 이동하기  (1) 2022.02.22
[백준 23599 - C++] 밥  (0) 2022.02.16
[백준 1107 - c++] 리모컨  (0) 2022.02.06
[백준 12107 - c++] 약수 지우기 게임 1  (1) 2022.02.06