[백준/BOJ] 백준 9935번 : 문자열 폭발

2021. 3. 13. 04:55알고리즘 문제풀이

www.acmicpc.net/problem/9935

 

9935번: 문자열 폭발

첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모

www.acmicpc.net

폭발 문자열이 나왔을 때 폭발 문자열을 pop_back() 하는 형식으로 문제를 해결했다

 

코드

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

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

	string input;
	string boom;
	string temp = "";

	cin >> input;
	cin >> boom;

	for (int i = 0; i < input.size(); i++)
	{
		temp += input[i];

		while (1)
		{
			if (temp.size() < boom.size())
				break;

			//폭발 문자열이 나왔을때
			if (temp.substr(temp.size() - boom.size(), boom.size()) == boom)
			{
				for (int j = 0; j < boom.size(); j++)
					temp.pop_back();
			}

			else
				break;

		}
	}

	if (temp == "")
		cout << "FRULA";

	else
		cout << temp;

	return 0;
}