[BOJ] 9935 - 문자열 폭발

김우경·2021년 5월 7일
0

알고리즘

목록 보기
62/69

문제링크

9935 - 문자열 폭발

문제설명

문자열과 폭발 문자열이 주어진다. 폭발 문자열이 폭발하면, 폭발 문자열은 문자열에서 사라지고 남은 문자들이 합쳐진다.
다음과 같은 과정으로 폭발이 진행될때 폭발이 다 끝나고 남은 문자열을 출력하세여

  • 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.
  • 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다.
  • 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다.

문제풀이

stack을 이용해서 푼다. 주어진 문자열을 stack에 담으면서 stack의 맨 윗부분이 폭발문자열과 일치하면 지워주면 된다.

import sys

input = sys.stdin.readline

string = input().strip()
bomb = input().strip()
last_bomb = bomb[-1]

stack = []
for s in string:
    stack.append(s)
    if s == last_bomb and "".join(stack[-len(bomb):]) == bomb:
        del stack[-len(bomb):]

if len(stack) == 0:
    print("FRULA")
else:
    print("".join(stack))
profile
Hongik CE

0개의 댓글