반응형
https://www.acmicpc.net/problem/9935
s = input()
e = input()
stack = []
for char in s:
stack.append(char)
if char == e[-1]:
if ''.join(stack[-len(e):]) == e:
for _ in range(len(e)):
stack.pop()
ans = ''.join(stack)
print(ans if ans != '' else 'FRULA')
예전에 후위표기식 하면서 했던 풀이와 핵심이 같습니다. 근데 기억이 잘 안나더라구요. 오히려 그 때는 못했던 인덱스 조절을 통해서 푸는 방법을 완성해서 풀어봤는데 시간초과가 나서 실패했습니다.
문제의 핵심은 전체문자열을 하나씩 돌면서 스택에 저장했다가 폭발 문자열의 마지막 문자와 같은게 나오면 스택의 마지막원소부터 폭발 문자열의 길이만큼 원소를 뽑아서 폭발 문자열과 같은지 비교를 하고 같다면 스택에서 지워버리는 겁니다.
지난 번에 풀었던 후위 표기식 문제도 올려드릴테니 같은 핵심 내용을 다른 문제로 연습해보고 싶으신 분은 아래 문제도 풀어보는 것을 추천드립니다.
https://www.acmicpc.net/problem/1918
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]11054 풀이 (0) | 2023.10.04 |
---|---|
[BOJ][Python]10830 풀이 (2) | 2023.08.28 |
[BOJ][Python]5639 풀이 (0) | 2023.08.26 |
[BOJ][Python]2638 풀이 (0) | 2023.08.24 |