for문
을 돌면서 문자열이 같은지 체크하는 방식이었다.stack
문제임을 깨닫고 stack
에 넣어서 검사하는 방식으로 바꿨다.stack에 넣은 글자
가 폭발 문자열의 마지막 문자
와 같으면 검사를 시작for문
으로 폭발 문자열
글자수만큼 검사# 현재 글자 == 폭발 문자열의 마지막 글자
if string[i] == boom[-1]:
# 이렇게 하나씩 비교하려고 했으나 실패
for j in range(m):
stack
에 다 넣고 stack
의 글자수 m
짜리 문자열을 폭발 문자열
과 비교한다!# stack의 m짜리 문자열 == 폭발 문자열
if ''.join(stack[-m:]) == boom:
# m번만큼 pop()해서 없애주기
for _ in range(m):
stack.pop()
stack
문제는 일단 모든 원소를 stack
에 넣고 검사하는 것 + 거꾸로 검사하는 것 인 것 같다 💡O(N * M)
import sys
input = sys.stdin.readline
string = input().strip()
boom = input().strip()
n = len(string)
m = len(boom)
stack = []
for i in range(n):
# 모든 문자열을 stack에 넣는다
stack.append(string[i])
# stack의 m짜리 문자열 == 폭발 문자열
if ''.join(stack[-m:]) == boom:
# m번만큼 pop()해서 없애주기
for _ in range(m):
stack.pop()
if stack:
print(''.join(stack))
else:
print('FRULA')