from collections import deque
def solution(ingredient):
answer = 0
ing = deque(ingredient)
ing2 = ''
while ing:
i = ing.popleft()
ing2+=str(i)
if i == 1 :
if ing2[-4:] == '1231':
ing2 = ing2[:-4]
answer += 1
return answer
풀이
정답률은 낮은데 그렇게 어려운 문제는 아닌거같다.. 그냥 사람들이 리스트의 시간 복잡도 감옥(a.k.a 지옥)에 갇혀서 못 푼 것 같은 느낌이다.
deque로 list를 대체하고, pop(0) 대신 popleft()로 맨 앞 원소를 빠르게 불러온다. 그리고 처음엔 나도 리스트에 이걸 append해서 [-4:]를 확인해야하나.. 했는데 (deque는 슬라이싱이 안된다.) 어림도 없지. 바로 시간초과에 걸려버렸다. 그래서 찾은 방법이 문자열이다.