컨베이어 벨트 길이 : N
컨베이어 벨트 위아래 총 길이 : 2N
벨트 간격 : 1
벨트 칸 수 : 2N개
반드시 로봇은 올라가는 위치(1)에서만 올라가고, 내려가는 위치(N)에서만 내려갈 수 있다.
내려가는 위치에 있는 로봇의 경우 반드시 땅으로 내려가야 한다.
칸에 올라가거나 이동하면, 그 칸의 내구도는 즉시 1만큼 감소한다.
내구도가 0인 칸에는 로봇 올라갈 수 없다.
> 이 글의 목적 : 컨베이어 벨트를 이용해 로봇들을 건너편으로 옮기려고 한다.
* 과정 *
1. 벨트가 한 칸 회전한다.
2. 가장 먼저 벨트가 올라간 로봇부터 회전하는 방향으로 이동이 가능하면, 이동한다.
이동할 수 없다면 가만히 있는다.
(이동하려면 이동하려는 칸에 로봇이 없어야 하며, 그 칸의 내구도가 1이상 남아있어야 한다)
3. 올라가는 위치에 로봇이 없다면 로봇을 하나 올리기
4. 내구도가 0인 칸의 개수가 K개 이상이라면 과정 종료, 그렇지 않다면 1번으로 들어간다.
> 종료시, 몇 번째 단계가 진행중이었는지 구해본다.
N : 컨베이어 벨트 길이 (한 면), K : 내구도가 0인 칸의 개수, Ai : i번 칸의 내구도
'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글
[Python] n19236번 | 청소년 상어 (0) | 2021.04.24 |
---|---|
[Python] n19237번 | 어른 상어 (0) | 2021.04.23 |
[Python] n20056번 | 마법사 상어와 파이어볼 (0) | 2021.04.22 |
[Python] n20057번) 마법사 상어와 토네이도 (0) | 2021.04.18 |
[Python] n20058) 마법사 상어와 파이어스톰 (0) | 2021.04.17 |