12904번: A와 B
수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수
www.acmicpc.net
정방향이 아닌 역방향으로 생각하면 쉽다.
글자를 조합해서 하나의 단어로 만드는 것 대신 단어에서 한 글자씩 빼는 방식이 더 쉽고, 메모리 효율도 좋음.
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[]) {
ios_base ::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
string S, T;
cin >> S >> T;
while (1) {
if (S.length() == T.length()) {
if (S == T)
cout << 1;
else
cout << 0;
return 0;
}
//문자열 T에서 한글자씩 뺀다
char tmp = T.back();
T.pop_back();
if (tmp == 'B')
reverse(T.begin(), T.end());
}
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 2309번 일곱난쟁이 (0) | 2020.10.11 |
---|