풀이
총 4가지 구현을 반복적으로 수행하다 내구도가 0 인 칸이 K 에 도달했을 경우까지의 단계를 출력하는 문제이다.
-
컨베이어 벨트가 이동하고 그 위의 로봇 역시 이동하기에 두 리스트 모두 수정해준 후 내리는 위치에 로봇이 도달했을 경우 해당 위치의 로봇을 제거해준다.
-
robot 리스트를 거꾸로 순회하면서 전진이 가능할 경우 로봇을 한칸 이동시켜준다. 마찬가지로 로봇이 내리는 위치에 도달했을 경우 해당 위치의 로봇을 제거해준다.
-
로봇이 올리는 위치에 생성된다. 이때 내구도가 0 이라면 생성하지 않는다.
-
위 모든 과정이 끝난 후 내구도가 0 인 칸이 K 개 이상이라면 반복문을 탈출하고 cnt 를 출력하고 K 개보다 적다면 다시 반복한다.
위 모든 과정을 while문에 담고 cnt 가 K 를 초과할 경우에 반복문을 탈출하면서 cnt 를 출력해주면된다.
소스코드
References