
문제링크: https://www.acmicpc.net/problem/9035
처음 시작할떄 replace()를 사용하여 풀었지만 시간초과가 나왔다. replace() 가 최악의 경우 O(n*n)이 나오므로 다른 방식으로 접근하였다.
계속해서 고민하다 생각이 안나서 분류를 찾아보고 "아 이건 스택으로 풀 수 있겠구나" 해서 뒤부터 확인하는 방식으로 풀 수 있었다.
최근 푼 문제중에 가장 생각하기 어려운 문제였다.
import sys
base_str = sys.stdin.readline().strip()
bomb_str = sys.stdin.readline().strip()
stack = []
bomb_stack = []
for a in bomb_str:
bomb_stack.append(a)
for i in base_str:
stack.append(i)
if len(stack) >= len(bomb_str) and i == bomb_str[-1]:
if stack[len(stack)-len(bomb_str):len(stack)] == bomb_stack:
for _ in range(len(bomb_str)):
stack.pop(len(stack)-1)
answer = ""
for a in stack:
answer = answer + a
if len(answer) == 0:
print("FRULA")
else:
print(answer)