PROGRAMMERS
[프로그래머스/파이썬] 택배상자
kode-daks
2025. 1. 31. 13:47
내 풀이
from collections import deque
def solution(order):
answer = 0
conv_main = deque([i for i in range(1, len(order)+1)]) # 원래 메인 컨베이어 벨트 (Queue)
conv_aux = deque() # 보조 컨베이어 벨트 (Stack)
order = deque(order) # 택배 실을 순서
while True:
# 메인 컨베이어 벨트에 택배가 있고, 실어야 할 택배와 메인 컨베이어 첫 번째가 같을 때
if conv_main and order[0] == conv_main[0]:
order.popleft()
conv_main.popleft()
answer += 1
# 메인에 없을 경우, 실어야 할 택배와 보조 컨베이어 마지막이 같을 때
elif conv_aux and order[0] == conv_aux[-1]:
order.popleft()
conv_aux.pop()
answer += 1
# 둘 다 없을 경우 (1) 메인 -> 보조 (2) 불가능한 경우 break
else:
try:
conv_aux.append(conv_main.popleft())
except:
break
return answer
메모
-