첫째 줄 문자열을 넣으면서 폭발 문자열과 같은 문장이 생기면 폭발시키는 문제이다.
위 그림을 보면 느끼겠지만 이 문제는 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 |