12904번: A와 B
문제에서 S를 T로 바꾸는 두 가지의 조건을 알려준다.
- 문자열의 뒤에 A를 추가한다.
- 문자열을 뒤집고 뒤에 B를 추가한다
이를 역순으로 T의 뒷 문자를 제거해가며 S로 바꾸는 방식으로 답을 찾았다.
이번 문제는 그리디 치고는 생각보다 간단한 문제였다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string S, T;
int res = 0;
void findRes() {
while (S.size() != T.size()) {
if (T.back() == 'A') {
T.pop_back();
}
else {
T.pop_back();
reverse(T.begin(), T.end());
}
}
if (S == T) res = 1;
}
void solution() {
findRes();
cout << res;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> S;
cin >> T;
solution();
return 0;
}