스택을 이용해 문자열을 검사하는 문제입니다. 특히 문자열과 스택을 이용한 문제를 자주 볼 수 있기 때문에 연습하는 것이 좋다고 생각합니다.
시간 복잡도는 문자열 전체(n)를 검사하는 도중 폭탄 문자열(x) 까지 검사하기 때문에 O(nx)
로 제한 시간안에 들어올 수 있습니다.
import sys
input = sys.stdin.readline
string = input().rstrip()
boom = list(map(str, input().rstrip()))
stack = []
for s in string:
# 스택에 한글자씩 넣는다.
stack.append(s)
# 넣을때 마다 스택을 검사
if len(stack) >= len(boom) and stack[len(stack) - len(boom) :] == boom:
for _ in range(len(boom)):
stack.pop()
print("".join(stack)) if stack else print("FRULA")