def solution(order):
answer = 0
stack = []
l = len(order)
idx = 0
num = 0
while idx < l:
if order[idx] > num:
num += 1
stack.append(num)
elif order[idx] == stack[-1]:
stack.pop()
idx += 1
else:
return idx
return idx
stack을 사용해서 해결한 문제
현재 컨테이너 벨트에 있는 상자보다 트럭에 실어야하는 상자의 번호가 작다면 그 번호가 될때까지 임시 컨테이너 벨트에 옮긴다. -> 스택에 담는다.
그 다음 스텍에서 뺀 후 다음 트럭에 실어야할 상자 번호를 확인한다.
만약 계속해서 스택의 마지막 번호와 같다면 pop 계속 진행
그렇지 않고 크다면 다시 상자를 임시 벨트에 넣는다.
만약 stack에 마지막에있는 상자 번호보다 택배에 넣어야 할 상자의 번호가 작다면 불가능한 경우이다. 그 이유는 이미 택배에 넣어야할 상자의 번호가 stack에 담겨있기 때문이다.
이러한 경우 현재 넣은 상자의 갯수를 return 해준다.