9935번: 문자열 폭발
첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모
www.acmicpc.net
스택을 이용하자!
- 문자열을 차례대로 stack에 넣는다.
- 이때 폭탄(bomb)길이보다 길거나 같을 때, 마지막 문자가 같은지 확인한다.
- 같다면 그 전에 꺼도 같은지 확인한다.
- 같다면 stack에서 폭탄을 제거해준다.
- stack에 남아있다면 출력 (리스트이므로 String으로 변환해 출력)
- 남아있지 않다면 FLURA를 출력해준다.
import sys
input = sys.stdin.readline
S = list(input().rstrip())
bomb = list(input().rstrip())
stack = []
for i in range(len(S)):
stack.append(S[i])
if stack[-1] == bomb[-1] and len(stack) >= len(bomb):
if stack[-len(bomb):] == bomb:
for i in range(len(bomb)):
stack.pop()
if stack:
print("".join(stack))
else:
print("FRULA")




최근댓글