세용용용용
2023. 5. 30. 17:55


나의 코드
def solution(order):
answer = 0
truck = []
second_list = []
#주문 길이 +1만큼 박스를 뽑아냄
# +1 해주는 이유는 마지막 박스가 주문 박스인경우
#트럭에 append시키고 반복문이 끝나버림...ㅠㅠ
#그러므로 다음 박스를 뽑고 second리스트의 박스를 확인할수 있게
for box in range(1,len(order)+2):
#뽑은 박스가 주문박스인경우 트럭에 실음
if box == order[0]:
truck.append(order.pop(0))
#뽑은 박스가 주문박스가 아닌경우
else:
if order[0] < box and second_list[-1] != order[0]:
break
#second의 가장 최근 박스와 주문박스가 같으면
#계속 truck에 실음
else:
while second_list:
if second_list[-1] == order[0]:
truck.append(order.pop(0))
second_list.pop(-1)
else:
break
second_list.append(box)
#print(truck)
answer = len(truck)
return answer
solution([5, 4, 3, 2, 1])

역시.... 너무 어렵다 ㅠㅠㅠㅠ
최종코드
접근 : 일단 보조벨트에 물건을 올리고 주문번호와 같으면 뽑아내고 아니면 계속 쌓는 방식
def solution(order):
answer = 0
second = []
box = 1
while box <= len(order):
second.append(box)
while second and second[-1] == order[answer]:
answer+=1
second.pop(-1)
box+=1
print(answer)
return answer
solution([4, 3, 1, 2, 5])
너무너무너무너무 허무하다.,.,.,.,.