백준
[백준 20055] 컨베이어 벨트 위의 로봇(python) deque 이용 구현
케굴
2023. 1. 1. 15:42
덱을 이용하여 컨베이어 벨트를 표현하였다.
덱속에 내구도와 로봇의 존재 여부를 넣어서 덱 하나로 모든 것을 관리 하였다.
from collections import deque
# input
N, K = map(int, input().split(" "))
belt = list(map(int, input().split(" ")))
belt_length = N*2 -1
queue = deque()
for i in belt:
queue.append([i, False])
result = 0
while True:
last = queue.pop()
queue.appendleft(last)
queue[N-1][1] = False
for i in range(N-2,-1,-1):
now = queue[i]
if now[1]:
next_index = i + 1
if queue[next_index][0] > 0 and queue[next_index][1] == False:
queue[next_index][0] -= 1
queue[i][1] = False
queue[next_index][1] = True
if i == N -2:
queue[next_index][1] = False
if queue[0][0] > 0 and queue[0][1] == False:
queue[0][0] -= 1
queue[0][1] = True
broken = 0
for i in queue:
if i[0] ==0:
broken+=1
result +=1
if broken >= K:
print(result)
break
문제를 잘못 읽어서 1에서 타고 2N에서 내리는줄 알고 풀어서 한참 고생했다..
역시 구현 문제는 문제 잘 읽고 푸는게 시간 단축에 가장 중요한 요인인듯 하다 ..