Data Structure/Stack

[백준 9935번] 문자열 폭발

킹우현 2023. 10. 18. 18:39

bae

 

9935번: 문자열 폭발

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

www.acmicpc.net

string = list(input())

boom = input()
boom_length = len(boom)

stack = []

for i,value in enumerate(string):
    stack.append(value)
    if value == boom[-1] and len(stack) >= boom_length:
        if ''.join(stack[-boom_length:]) == boom:
            for j in range(boom_length):
                stack.pop()

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

이번 문제는 특정 문자열이 폭발을 일으킨다고 했을 때, 최종적으로 남는 문자열을 출력하는 문제이다.

 

따라서 첫번째 문자부터 스택에 담으면서 현재 문자가 폭발 문자열의 마지막 문자와 동일하고, 앞에 문자열이 폭발 문자열과 일치하면 해당 폭발 문자열을 pop하여 제거해주었다.

 

Stack 자료구조를 활용하여 간단하게 풀이할 수 있었던 문제였다 :)

'Data Structure > Stack' 카테고리의 다른 글

[백준 1406번] 에디터  (1) 2023.10.18
[백준 2812번] 크게 만들기  (0) 2023.10.18
[백준 2504번] 괄호의 값  (1) 2023.10.18
[백준 10799번] 쇠막대기  (1) 2023.10.18
[백준 4949번] 균형잡힌 세상  (0) 2023.10.18