https://www.acmicpc.net/problem/9935
말이 폭발이지 문자열 비교 후 삭제하는 루틴을 만들어야한다.
뭔가 파이썬 기능을 잘 활용 해야 겠다는 생각이 드는 코드였다.
생각 자체는 아래 코드와 비슷하게 뻗었지만, 시간초과에 대한 염려나 string을 어떻게 처리 할 수 있나에 대한 막막함이 좀 많이 와닿았던 것 같다. ''.join(범위)라고 생긴 함수는 꽤 마음에 든다.
import sys
dataInput = input()
originSentence = list(dataInput)
targetSentence = input()
originStack = []
targetStack = []
canContinue = True
originTmpSt = []
targetTmpSt = []
originSpended = 0
targetLength = len(targetSentence)
for i in range(len(originSentence)):
originStack.append(originSentence[i])
if(len(originStack) >= targetLength) and ''.join(originStack[-targetLength:]) == targetSentence:
del originStack[-targetLength:]
if (len(originStack) == 0):
print('FRULA')
else:
print(''.join(originStack))
# 그냥 정직하게 한글자씩 넣고 커지는 시점에서 검사하는 루틴을 만들면 됐구나.
#ㅆ
'문제풀이' 카테고리의 다른 글
[PY] 시작부터 막힌 그래프 [1991 : 트리 순회] (0) | 2025.03.28 |
---|---|
[PY] <!> 하자있는 채로 풀었던 내용들 (0) | 2025.03.28 |
[PY] 10815 : 숫자카드 (0) | 2025.03.27 |
[PY] 1966 : 프린터 큐 (0) | 2025.03.27 |
[PY] 10830 : 행렬 제곱 (0) | 2025.03.26 |