'보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다' 라는 문제를 봤을 때 스택을 쓰는 걸 떠올렸다
근데 스택을 어떻게 써야할지 알고리즘을 못 짜서 다른 분의 코드를 참고했다ㅠ_ㅠ
def solution(order):
tmp = []
n = len(order)
i = 1
idx = 0
while i < n+1:
tmp.append(i)
while tmp[-1]==order[idx]:
idx+=1
tmp.pop()
if len(tmp)==0:
break
i += 1
return idx
def solution(order):
tmp = [] #보조 컨테이너
n = len(order)
start = 1
answer = 0
for i in range(n):
#보조 컨테이너에 있는 경우
if order[i] in tmp:
#가장 마지막에 실은 상자가, 현재 순서인 경우
if tmp[-1]==order[i]:
tmp.pop()
answer += 1
#가장 마지막에 싣지 않은 경우
else:
break
#보조 컨테이너에 없는 경우
else:
#처음부터 현재 순서 전까지 모두 보조 컨테이너에 싣기
for j in range(start, order[i]):
tmp.append(j)
start = order[i]+1 #다음 순서 업데이트
answer += 1 #현재 순서의 박스를 트럭에 실었으므로, +1
return answer