[백준] 9935번 - 문자열 폭발

fooooif·2021년 7월 9일
post-thumbnail

✍ 문제

문제링크: https://www.acmicpc.net/problem/9035

👏 풀이과정

처음 시작할떄 replace()를 사용하여 풀었지만 시간초과가 나왔다. replace() 가 최악의 경우 O(n*n)이 나오므로 다른 방식으로 접근하였다.
계속해서 고민하다 생각이 안나서 분류를 찾아보고 "아 이건 스택으로 풀 수 있겠구나" 해서 뒤부터 확인하는 방식으로 풀 수 있었다.
최근 푼 문제중에 가장 생각하기 어려운 문제였다.

import sys
base_str = sys.stdin.readline().strip()
bomb_str = sys.stdin.readline().strip()
stack = []
bomb_stack = []
for a in bomb_str:
    bomb_stack.append(a)
for i in base_str:
    stack.append(i)

    if len(stack) >= len(bomb_str) and i == bomb_str[-1]:
        if stack[len(stack)-len(bomb_str):len(stack)] == bomb_stack:

            for _ in range(len(bomb_str)):
                stack.pop(len(stack)-1)
answer = ""
for a in stack:
    answer = answer + a
if len(answer) == 0:
    print("FRULA")
else:
    print(answer)

profile
열심히 하자

0개의 댓글