*문제 출처는 백준에 있습니다.
문제 제목: 컨베이어 벨트 위의 로봇 / 20055번 (골드 5단계)
문제 사이트: https://www.acmicpc.net/problem/20055
문제 설명

나의 풀이
from collections import deque
def robot(n, k, belt):
dq = deque(belt) # 벨트 내구도
robots = deque([False] * (2 * n)) # 로봇 존재 여부
step = 0 # 단계 수
while True:
step += 1
# 1. 벨트와 로봇 함께 회전
dq.rotate(1)
robots.rotate(1)
robots[n - 1] = False # 내리는 위치에 로봇은 무조건 내려감
# 2. 로봇 이동 (앞에서부터 순차적으로)
for i in range(n - 2, -1, -1): # N-2 ~ 0
if robots[i] and not robots[i + 1] and dq[i + 1] > 0:
robots[i] = False
robots[i + 1] = True
dq[i + 1] -= 1
robots[n - 1] = False # 내리는 위치 다시 체크
# 3. 로봇 올리기
if dq[0] > 0 and not robots[0]:
robots[0] = True
dq[0] -= 1
# 4. 내구도 0인 칸 개수 세기
if dq.count(0) >= k:
return step
def main():
n, k = map(int, input().split())
belt = list(map(int, input().split()))
print(robot(n, k, belt))
if __name__=="__main__":
main()

※ 알아야 할 것
아랫칸 벨트로 가게되면 로봇은 무조건 내려야합니다.
'Coding Test > 백준-Python' 카테고리의 다른 글
| 백준 / 경사로 / 14890번 / Python (0) | 2025.06.27 |
|---|---|
| 백준 / 스티커 / 9465번 / Python (0) | 2025.06.27 |
| 백준 / 빙산 / 2573번 / Python (1) | 2025.06.18 |
| 백준 / 모든 순열 / 10974번 / Python (0) | 2025.06.14 |
| 백준 / 쇠막대기 / 10799번 / Python (0) | 2025.06.12 |