본문 바로가기
문제 해결/BOJ

[백준] 문자열 폭발

by 자잘 2023. 2. 24.

https://www.acmicpc.net/problem/9935

 

9935번: 문자열 폭발

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

www.acmicpc.net

스택을 활용한 문제입니다. 문자들을 스택에 쌓아주면서 마지막 문자열이 매칭하고자하는 문자열과 비교해서 같으면 stack에서 pop하여 버리면 풀 수 있습니다.

 

import sys

# sys.stdin = open("input.txt", "r")
input = sys.stdin.readline

inputs = list(input().rstrip())
matching = input().rstrip()

l = len(matching)

stack = []

for char in inputs:
    stack.append(char)

    if len(stack) >= l:
        # 마지막 문자열이 matching과 같으면 stack에서 pop한다.
        if ''.join(stack[-l:]) == matching:
            for _ in range(l):
                stack.pop()

ans = ''.join(stack)
if not ans:
    print('FRULA')
else:
    print(ans)

'문제 해결 > BOJ' 카테고리의 다른 글

[백준] 연구소 3  (0) 2023.02.26
[백준] 일감호에 다리 놓기  (0) 2023.02.25
[백준] 등수 찾기  (0) 2023.02.24
[백준] 게리 멘더링2  (0) 2023.02.23
[백준] 벽 부수고 이동하기 2  (0) 2023.02.22