프로그래머스 lv2 택배상자
출처
https://school.programmers.co.kr/learn/courses/30/lessons/131704
풀이
# order = [4, 3, 1, 2, 5] = 택배 기사님이 미리 알려준 순서
# 첫번째로 트럭에 넣어야 하는 박스는 4번 박스 라는 의미이다.
def solution(order):
# 택배물의 갯수가 5개면 5, 4, 3, 2, 1 형식으로 초기화된다.
# 1번 상자부터 n번상자까지 번호가 증가하는 순서대로 트럭에 넣는것을 시도해야 한다.
# stack의 경우 python에서 pop하는것은 O(1) 이기 때문에 일부로 이렇게 해준다.
mainContainer = [i for i in range(len(order), 0, -1)]
subContainer = []
truck = []
# 트럭에 넣을 박스번호의 인덱스
curOrder = 0
while curOrder != len(order):
if mainContainer and mainContainer[-1] == order[curOrder]:
truck.append(mainContainer.pop())
curOrder += 1
elif subContainer and subContainer[-1] == order[curOrder]:
truck.append(subContainer.pop())
curOrder += 1
elif mainContainer:
subContainer.append(mainContainer.pop())
else:
break
return len(truck)
Leave a comment