본문 바로가기

알고리즘/문자열 처리

파이썬 | 백준 | 9935 | 문자열 폭발

solution

1. 파이썬에서 문자열은 값 못 바꿈 → 배열 변환(stack을 이용하였다)

2. 끝의 글자가 같으면 폭발 문자열의 길이만큼 비교하며, 같으면 pop

# 9935, 문자열 폭발
import sys

s1 = sys.stdin.readline().rstrip()
s2 = sys.stdin.readline().rstrip()
s1 = list(s1)
s2 = list(s2)
stack = []
for ch in s1:
    stack.append(ch)
    if ch == s2[-1]:
        for i in range(1, len(s2)+1):
            if len(stack)<len(s2):
                break
            if stack[-i] != s2[-i]:
                break

        else:
            for i in range(len(s2)):
                if stack:
                    stack.pop()

if stack:
    print("".join(stack))
else:
    print("FRULA")

 

if len(stack)<len(s2):
	break

없으면 런타임 에러

ex) 

12ab112ab2abb

12ab

 

문제 출처 www.acmicpc.net/problem/9935

 

9935번: 문자열 폭발

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

www.acmicpc.net