백준/실랜디, 골랜디

[백준] C++ 문자열 폭발(9935)

2zreal 2025. 1. 12. 21:12

첫째 줄 문자열을 넣으면서 폭발 문자열과 같은 문장이 생기면 폭발시키는 문제이다.

위 그림을 보면 느끼겠지만 이 문제는 Stack과 관련이 있는 문제이다.

 

문제해결방법

1. 문자열의 문자를 하나하나 스택이 집어넣는다. 

2. (스택의 크기-폭발 문자열의 크기)부터 스택의 크기까지 문자열과 폭발 문자열이 같은지 비교한다.

3. 만약 같으면 스택에서 폭발 문자열을 제거한다.

#include <iostream>

using namespace std;

char arr[1000001];

int main(void)
{
	string s1 = "";
	string s2 = "";
	cin >> s1 >> s2;
	

	int index = 0;
	for (int i = 0; i < s1.size(); i++)
	{
		arr[index] = s1[i];
		index++;

		if ((index - s2.size()) >= 0)
		{
			int sig = 0;
			
			for (int j = (index - s2.size()); j < index; j++)
			{
				if (arr[j] != s2[j- int(index - s2.size())])
				{
					sig = 1;
				}
			}
			if (sig == 0)
			{
				index = (index - s2.size());
			}
		}
	}
	if (index == 0)
	{
		cout << "FRULA";
	}
	else
	{
		for (int i = 0; i < index; i++)
		{
			cout << arr[i];
		}
	}

	

	return 0;
}

'백준 > 실랜디, 골랜디' 카테고리의 다른 글

[백준] 정수 삼각형(1932)  (0) 2025.01.12
[백준] C++ 테트로미노(1450)  (0) 2025.01.12
[백준] C++ 탑(2493)  (0) 2025.01.10
[백준] 그림(1926)  (0) 2025.01.10
[백준] C++ 스타트와 링크(14889)  (0) 2025.01.09