https://www.acmicpc.net/problem/9935
9935번: 문자열 폭발
첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모
www.acmicpc.net
import sys
st = sys.stdin.readline().rstrip()
boom = sys.stdin.readline().rstrip()
stack = []
for s in st: # 입력받은 문자열을 하나씩 추가해주는데
stack.append(s)
if s == boom[-1] and ''.join(stack[len(stack)-len(boom):]) == boom: # boom의 마지막 글자가 들어갔을때 boom 길이만큼 뒤에서부터 확인
for i in range(len(boom)): # boom과 같으면 그 만큼 pop 해주기
stack.pop()
if stack:
print(''.join(stack)) # 글자열이 남아있으면 문자열로 출력
else:
print("FRULA") # 없으면 FRULA 출력
- 접근방식: 문자열을 다 넣고 일일이 확인하지 않고 문자열을 넣을때 boom의 끝글자와 같으면 그때 확인해주기 !
- 느낀점: 꽤 많은 날이 걸렸던 문제.. 다른 사람의 코드를 참고해도 됐겠지만 꼭 내가 풀어보고싶어서 조금 고집을 부린 문제였다.. 그래도 풀려서 역시 안되는건 없구나 느꼈다.
'자료구조, 알고리즘 > 문자열' 카테고리의 다른 글
[백준] 9012 괄호(문자열) - Python (0) | 2023.04.20 |
---|---|
[백준] 1543 문서 검색(문자열) - Python (0) | 2023.03.13 |