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 |