백준 9935번: 문자열 폭발

Seungil Kim·2021년 9월 24일
0

PS

목록 보기
39/206

문자열 폭발

백준 9935번: 문자열 폭발

아이디어

문자열 길이 최대 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() 하면서 눈물을 흘리고 있었을듯.

profile
블로그 옮겼어용 https://ks1ksi.io/

0개의 댓글