문제 링크 : 컨테이너 벨트 위의 로봇
구현 문제인데 문제이해가 조금 어려웠다. 문제 설명 그대로 구현하면 되는 문제였다.
import sys
from collections import deque
input=sys.stdin.readline
n,k=map(int, input().split())
belt=deque(list(map(int, input().split())))
robot=deque([0]*n)
cnt=0
while 1:
belt.rotate(1) #1. 벨트회전
robot.rotate(1)
robot[-1]=0
for i in range(n-2,-1,-1): #2. 가장 먼저 올라간 로봇부터
if robot[i] and not robot[i+1] and belt[i+1]: #로봇 다음칸이 비어있고 내구성이 1이상이면(조건)
robot[i+1]=1
robot[i]=0
belt[i+1]-=1
robot[-1]=0
if not robot[0] and belt[0]: #3. 올라가는 위치에 로봇이 없으면 로봇을 올린다
robot[0]=1
belt[0]-=1
cnt+=1
if belt.count(0)>=k: #4. 내구성이 0인 칸이 k개 이상이면
break
print(cnt)
순서대로 구현!!