당신은 샌프란시스코의 택시 운전사입니다. 택시 운전 기사의 일반적인 경우와 마찬가지로 이동 가능한 유효한 방향이 왼쪽, 오른쪽, 위 및 아래 인 그리드를 탐색합니다. 그러나 San Fransisco는 매우 구릉이므로 두 교차점 사이의 거리가 반드시 같을 필요는 없습니다. 보다 구체적으로, 고도의 교차점과 고도 a
의 인접 교차점 사이의 거리b
것이다 1 + |a - b|
. 목표는지도 왼쪽 상단의 출발지에서 오른쪽 하단의 목적지까지의 가장 짧은 경로를 찾는 것입니다.
입력
가장 편리한 형식의 정수 고도의 2 차원 격자 (2 차원 배열, 너비 및 / 또는 높이가있는 1 차원 배열 등).
산출
이동하는 방향의 시퀀스는 두 개의 인접한 고도의 교점 사이의 거리가 소정의 최단 거리 가능 왼쪽 상단에서 입력의 오른쪽 하단에 도달하도록 a
하고 b
식에 의해 주어진다 1 + |a - b|
. 여러 솔루션이있는 경우 모든 솔루션을 출력하십시오.
내가 사용하지만 U
, D
, L
, 및 R
최대를 들어, 아래, 왼쪽, 오른쪽 너무 오래 그것은과 모든 입력을 통해 그들과의 일치로 방향을 나타 내기 위해 어떤 네 가지 문자열을 사용할 수 있습니다 프로그램 아래의 예이다.
예
Input:
0 3 0 0 0
0 2 0 2 0
0 0 0 3 0
Output:
D D R R U U R R D D
Input:
3
Output:
<empty>
Input:
11 11 11
11 11 11
11 11 11
Output:
R R D D
R D R D
R D D R
D R R D
D R D R
D D R R
Input:
7 8 1 -1 0
4 4 6 -1 7
3 4 4 2 8
2 5 2 -1 2
Output:
D R D R R D R
D R D R D R R
이것은 코드 골프 이므로 가장 짧은 바이트 수의 응답이 이깁니다.
1
고도는 항상 10보다 작습니까? (그들은 예에 있지만, 항상있을 것인가?)
—
Dada
@Dada 고도는 반드시 10보다 작을 필요는 없으며 (음수 일 수도 있음), 이에 따라 예제를 업데이트했습니다.
—
0
내가이 포스트가 활동적인 것을 알았을 때 나는 suuuuuuper에 흥분했다 – 나는 누군가가 택시에 답을 올렸다고 생각했다! 아마 언젠가
—
우주 쓰레기