로드러너 1은 고전게임 로드러너를 넥슨에서 리메이크한 게임이다. 플레이어는 러너를 조종해서 경비로봇들을 따돌리고 맵에 뿌려진 골드를 모두 획득해 탈출하려 한다.
러너에게 가장 빨리 갈 수 있는 경로로 움직이는 경비로봇 AI를 만들어보자. 현재 게임 맵의 상태와 러너의 위치, 경비로봇의 위치가 주어졌을 때 경비로봇이 어떤 순서로 행동을 취해야 러너에게 가장 빨리 갈 수 있는지 결정하면 된다. 주어진 경비로봇의 처음 위치는 항상 블록을 밟고 서 있고, 러너는 움직이지 않는다고 가정한다.
경비로봇의 이동 규칙은 다음과 같다.
첫 줄에는 맵의 가로 크기 과 세로 크기 이 공백으로 구분되어 주어진다. 과 은 보다 크지 않은 자연수이다.
둘째 줄에 , , 가 공백으로 구분되어 주어진다. , , 은 보다 크지 않은 자연수이다.
이후 개의 줄에 맵 정보가 맨 위부터 아래로 차례로 주어진다.
맵 정보는 빈 공간은 .
, 블록은 B
, 사다리는 H
, 러너의 위치는 R
, 경비로봇의 위치는 G
로 주어진다.
첫 줄에 경비로봇이 이동할 방향을 L
(왼쪽), R
(오른쪽), U
(위쪽), D
(아래쪽)으로 공백없이 출력한다.
낙하하는 경우도 출력해야 한다. 위 상황의 경우 출력은 R
, D
로 출력한다.
사다리에서 오른쪽으로 이탈하는 과정이 R
, 낙하가 D
이다. 만약 여러 칸을 낙하하면 낙하하는 칸수만큼 D
를 출력한다.
최단 시간에 러너에게 도달 가능한 경로가 여럿이라면 그 중 아무거나 하나만 출력하면 된다. 러너에게 도달 불가능할 경우 X를 출력한다.
5 5 1 1 1 BBBBB B.R.B B.BHB BG.HB BBBBB
RRUUL
실제 게임에는 블록 파기, 매달리기 등 더 많은 요소가 있지만 이 문제에서는 다루지 않는다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 90점
입력되는 맵에 사다리가 주어지지 않는다.
종류 2: 60점
.
종류 3: 150점
문제의 원래 제한조건 이외의 추가된 제한이 없음.