코딩테스트 대비/BOJ

[Baekjoon/Python] 9935번: 문자열 폭발 - 효과는 굉장했다!

bluetag_boy 2022. 6. 12. 03:37
반응형
 

9935번: 문자열 폭발

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

www.acmicpc.net

 

알고리즘 분류

  • 자료 구조
  • 문자열
  • 스택

 

 

SOLUTION

import sys

string = sys.stdin.readline().rstrip()
explosion = list(sys.stdin.readline().rstrip())

stack = []

for i in range(len(string)):
    stack.append(string[i])
    
    # 시간 단축을 위해 stack에 마지막으로 들어온 문자랑 비교를 한다
    if stack[-1] == explosion[-1] and len(stack) >= len(explosion):
        if stack[-len(explosion):] == explosion: # 문자열 폭발!
            stack[-len(explosion):] = []
            
if stack:
    print(''.join(stack))
    
else:
    print("FRULA")