#include <iostream>
using namespace std;
string input, bomb;
int main(void){
cin >> input >> bomb;
string answer = "";
for (int i = 0; i < input.size(); i++){
answer += input[i];
if (answer[answer.size()-1] == bomb[bomb.size()-1]){
int cnt = 1;
for (int j = 0; j < bomb.size()-1; j++){
if (answer[answer.size()-2-j] == bomb[bomb.size()-2-j]) cnt++;
else break;
}
if (cnt == bomb.size()){
for(int b = 0; b < bomb.length(); b++){
answer.pop_back();
}
}
}
}
answer.size() > 0 ? cout << answer : cout << "FRULA";
return 0;
}
문자열을 첫 원소부터 살펴보면서 answer라는 정답 문자열에 추가한다. 이때 스택처럼 폭탄의 맨 뒤와 answer의 맨 뒤를 비교하면서 같을 경우 answer의 맨 뒤가 폭탄인지 확인한다. 폭탄일 경우 answer에서 pop 해주면 된다. 이때 간단하게 하려고 substr을 사용했는데 이러면 시간초과가 뜬다.