728x90
반응형
백준 12904 A와 B
1. 문제
2. 접근법
[ 문제 접근 ]
입력받은 s에서 t를 유추하는 것 보다 t에서 거꾸로 s를 구하는 것이 코드가 더 간결했다.
출력을 0, 1로 해야하므로 flag를 하나둬서 바로 출력했다.
마지막 단어가 B이면 reverse 함수로 뒤집고 아니라면 마지막 단어를 하나씩 제거하면서 while문을 돌렸다.
3. 코드
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
string s, t;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
bool flag = false;
cin >> s >> t;
while (1)
{
if (s.length() == t.length())
{
if (s == t)
flag = true;
break;
}
char c = t[t.length() - 1];
t.pop_back();
if (c == 'B')
reverse(t.begin(), t.end());
}
cout << flag << "\n";
return 0;
}
4. 시간복잡도
입력받은 string 크기만큼 while문을 돌리므로 최대 1000만큼 돈다. 따라서 1초내에 구현하기 충분하다.
5. 결과
728x90
반응형
'알고리즘 스터디' 카테고리의 다른 글
[백준] 15683 감시 (C++) (0) | 2021.09.24 |
---|---|
[백준] 영우는 사기꾼? (C++) (0) | 2021.09.23 |
[프로그래머스] 복서 정렬하기(C++) (0) | 2021.09.16 |
[백준] 15684 사다리 조작 (C++) (0) | 2021.09.16 |
[백준] 16938 캠프 준비(C++) (0) | 2021.09.11 |