djm03178   3년 전

우선 https://www.acmicpc.net/board/... 보다 이전의 요청인 https://www.acmicpc.net/board/... 가 반영되지 않았습니다. 불필요한 조건이 있는 것 자체가 문제는 아니지만, 로봇이 '이동하는' 과정에서는 "그 칸의 내구도가 1 이상 남아 있어야 한다."를 직접적으로 조건으로 제시한 반면에 '올라가는' 과정에서는 이를 빠뜨리고 문제에 영향을 주지 않는 불필요한 조건만이 유일한 조건인 것처럼 쓰인 것이 가장 크게 헷갈리게 하는 요소라고 생각합니다. 지금으로서는 더 윗 문단의 "내구도가 0인 칸에는 로봇이 올라갈 수 없다."를 보고 판단하는 수밖에 없는데, 그 문단에서는 오히려 이동 시의 내구도 조건에 대한 언급이 없으므로 일관성 있게 둘 다 과정 설명에 적는 것이 훨씬 깔끔할 것이라고 생각합니다.

그리고 '땅' 대신에 다른 표현을 썼으면 좋겠습니다. 지문 어디에도 땅이 컨베이어 벨트와 무관한 공간을 의미한다는 언급이 없고, 로봇이 스스로 벨트에 올라타는 듯한 '올라간다'와 누군가가 집어서 벨트에 올려주는 '올린다'의 두 표현을 섞어서 쓰고 있어 일관적이지도 않습니다. 또한 그림을 보고 땅이 컨베이어 벨트의 아랫쪽 부분이라고 착각해서 '올라가거나' '내려가는' 것이 컨베이어 벨트를 그대로 따라가는 것처럼 보일 수도 있습니다.

또한 "내려가는 위치에 로봇이 있는 경우 로봇은 반드시 땅으로 내려가야 한다."도 명확하지 않습니다. 결과적으로 정답에 영향을 주지는 않지만, 이 문장으로만 봐서는 내려가는 위치에 로봇이 잠시라도 서있을 수 없는 것인지, 아니면 내려가는 위치에 로봇이 있는 상태에서 컨베이어 벨트가 회전하거나 로봇이 움직이려고 할 때 내려가야 하는지 그 시점이 명확하지 않습니다.

정리해서, 다음과 같이 수정이 이루어지면 좋겠습니다.

벨트가 한 칸 회전하면 1번부터 2N-1번까지의 칸은 다음 번호의 칸이 있는 위치로 이동하고, 2N번 칸은 1번 칸의 위치로 이동한다. i번 칸의 내구도는 Ai이다. 위의 그림에서 1번 칸이 있는 위치를 "올리는 위치", N번 칸이 있는 위치를 "내리는 위치"라고 한다.

컨베이어 벨트에 박스 모양 로봇을 하나씩 올리려고 한다. 로봇은 올리는 위치에만 올릴 수 있고, 내리는 위치에서만 내릴 수 있다. 로봇은 컨베이어 벨트 위에서 스스로 이동할 수 있다. 로봇을 올리는 위치에 올리거나 로봇이 어떤 칸으로 이동하면 그 칸의 내구도는 즉시 1만큼 감소한다.

컨베이어 벨트를 이용해 로봇들을 건너편으로 옮기려고 한다. 로봇을 옮기는 과정에서는 아래와 같은 일이 순서대로 일어난다.

  1. 벨트가 각 칸 위에 있는 로봇들과 함께 한 칸 회전한다. 내리는 위치에 있는 로봇은 내린다.
  2. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한 칸 이동할 수 있다면 이동한다. 만약 이동할 수 없다면 가만히 있는다.
    1. 로봇이 이동하기 위해서는 로봇이 내리는 위치가 아니고, 이동하려는 칸에 로봇이 없으며, 그 칸의 내구도가 1 이상 남아 있어야 한다.
  3. 올리는 위치에 있는 칸의 내구도가 0이 아니면 올리는 위치에 로봇을 올린다.
  4. 내구도가 0인 칸의 개수가 K개 이상이라면 과정을 종료한다. 그렇지 않다면 1번으로 돌아간다.

dasom7120   3년 전

이해를 못하고있었는데 설명 감사합니다.

lachrym96   3년 전

이 설명으로 한번에 AC 받았습니다. 감사합니다 🙇🏻‍♂️

startlink   3년 전

수정했습니다.

댓글을 작성하려면 로그인해야 합니다.