[백준/BOJ] 백준 12904번 : A와 B

2021. 2. 28. 19:23알고리즘 문제풀이

www.acmicpc.net/problem/12904

 

12904번: A와 B

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

www.acmicpc.net

문자열 S와 T의 길이가 같아질 때까지 문자열 T를 확인하며 T의 끝이 'A'라면 해당 문자를 지우고, 끝이 'B'라면 해당 문자를 지우고 문자열을 뒤집는다. 그리고 S와 T의 길이가 같아졌을 때 같은 문자열인지 판단한다.

 

코드

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

string S;
string T;
string::iterator it;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	cin >> S >> T;

	while (S.size() != T.size())
	{
		//문자열 끝이 'A'일때
		if (T[T.size() - 1] == 'A')
		{
			it = T.end();
			it--;

			T.erase(it);
		}

		//문자열 끝이 'B'일때
		else if (T[T.size() - 1] == 'B')
		{
			it = T.end();
			it--;

			T.erase(it);
			reverse(T.begin(), T.end()); //뒤집는다
		}
	}

	if (S == T)
		cout << 1;
	else
		cout << 0;

	return 0;
}