반응형
https://www.acmicpc.net/problem/9935
9935번: 문자열 폭발
첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모
www.acmicpc.net
💡IDEA
스택을 사용하는 문제이다.
처음에는 replace를 사용하여 풀었지만 역시나 시간 초과가 발생했다.
스택을 사용해서 입력 문자를 하나씩 넣고, 스택에 쌓인 문자열 끝에 폭발 문자열이 있으면 그만큼 pop 해준다.
조인을 잘 활용해야 하고 스택에 아무것도 남아있지 않다면 "FRULA"를 출력한다.
📌CODE
import sys
input = sys.stdin.readline
arr = input().rstrip()
boom = input().rstrip()
# 시간초과
# while boom in arr:
# arr = arr.replace(boom, '')
length = len(boom)
stack = []
for x in arr:
stack.append(x)
if ''.join(stack[-length:]) == boom:
for _ in range(length):
stack.pop()
if stack:
print(''.join(stack))
else:
print("FRULA")
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ][python] 15666. N과 M (12) (0) | 2022.07.02 |
---|---|
[BOJ][python] 2407. 조합 (0) | 2022.07.02 |
[BOJ][python] 17070. 파이프 옮기기 1 (0) | 2022.06.27 |
[BOJ][python] 16953. A → B (1) | 2022.06.27 |
[BOJ][python] 2096. 내려가기 (0) | 2022.06.27 |