동캄의 코딩도장

백준 9935 [문자열 폭발] 파이썬 본문

코테/BOJ

백준 9935 [문자열 폭발] 파이썬

동 캄 2022. 5. 17. 15:03

https://www.acmicpc.net/problem/9935

 

9935번: 문자열 폭발

첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모

www.acmicpc.net

# 백준 9935 문자열 폭발
s = list(map(str, input().rstrip()))
burst = list(map(str, input().rstrip()))
burst_len = len(burst)
stack = []

for i in range(len(s)):
    val = s[i]
    stack.append(val)
    if len(stack) >= burst_len and val == burst[burst_len-1]:
        for j in range(burst_len-1, -1, -1):
            if stack[len(stack)-burst_len+j] != burst[j]:
                break
        else:
            for _ in range(burst_len):
                stack.pop()
if stack:
    print(''.join(stack))
else:
    print('FRULA')

스택을 이용하여 문제를 해결하였다.

새롭게 스택에 추가되는 문자가 폭발문자열의 마지막 문자와 같다면, stack을 탐색한다.