깡뇽

[백준] 20055번 컨베이어 벨트 위의 로봇 파이썬 본문

Algorithm/BAEKJOON

[백준] 20055번 컨베이어 벨트 위의 로봇 파이썬

깡뇽 2022. 10. 4. 17:12
반응형

길이가 N인 컨베이어 벨트 / 길이가 2N인 벨트가 해당 컨베이어 벨트를 위아래로 감싸며 도는 중.

길이 1 간격으로 2N개의 칸으로 나뉨.

각 칸은 1부터 2N까지의 번호가 매겨져 있음.

벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동.

i번 칸의 내구도는 Ai / 1번 칸이 있는 위치를 "올리는 위치" / N번 칸이 있는 위치를 "내리는 위치"

로봇을 올리는 위치에 올리거나 로봇이 어떤 칸으로 이동하면 그 칸의 내구도는 즉시 1만큼 감소.

 

<로봇들을 건너편으로 옮기기>

1. 벨트가 칸 위에 있는 로봇과 함께 한 칸 회전.

2. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한 칸 이동할 수 있다면 이동. 만약 이동할 수 없다면 가만히 있기.

   (1) 로봇이 이동하기 위해서는 이동하려는 칸에 로봇이 없으며, 그 칸의 내구도가 1 이상 남아 있어야 함.

3. 올리는 위치에 있는 칸의 내구도가 0이 아니면 올리는 위치에 로봇을 올림.

4. 내구도가 0인 칸의 개수가 K개 이상이라면 과정을 종료. 그렇지 않으면 1번으로 돌아감.

 

- 입력

1줄 : N, K

2줄 : A1, A2, ,,, A2N

 

- 출력

종료 시점의 단계

 

20055번 컨베이어 벨트 위의 로봇

 

출처 : https://www.acmicpc.net/problem/20055

 

20055번: 컨베이어 벨트 위의 로봇

길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부

www.acmicpc.net

 

반응형