문자열 길이 최대 1,000,000이다. 그냥 string.find(어쩌구) 하면 당연히 시간초과가 난다. 여러번 find하고 그 과정에서 문자열을 계속 탐색하기 때문.
문자열에서 문자를 하나씩 뽑아 리스트에 넣는다. 그러다 뒷부분이 폭발 문자열과 일치하면 pop 메소드를 실행한다. 그러면 문자열을 처음부터 끝까지 딱 한 번만 탐색하고 폭발 문자열을 찾아서 없앨 수 있다!!
str = input()
exp = input()
l = len(exp)
ans = []
for i in str:
ans.append(i)
if ans[-l:] == list(exp):
for _ in range(l):
ans.pop()
if not ans:
print("FRULA")
else:
print(''.join(ans))
여윽씨 파이썬이다. 문자열 문제를 이렇게 간단히.. 파이썬 없었으면 지금쯤 new String() 하면서 눈물을 흘리고 있었을듯.