당신의 친구가 당신에게 마을 최고의 레스토랑으로가는 길을 알려주었습니다. 일련의 좌우 회전입니다. 불행히도, 그들은 당신이 그 턴 사이에 얼마나 오래 가야하는지 언급하는 것을 잊었습니다. 다행히 모든 레스토랑이있는 거리지도가 있습니다. 그들이 어떤 식당을 의미했는지 알아낼 수 있습니까?
입력
맵은 ASCII 문자의 사각형 격자로 제공됩니다. .
도로는이다 #
, 건물입니다 A
하는 Z
다양한 레스토랑이 있습니다. 왼쪽 상단에서 시작하여 동쪽으로갑니다. 예:
.....A
.#.###
B....C
##.#.#
D....E
##F###
친구의 지시는 (잠재적으로 비어있는) 문자열 또는 L
s 및 R
s를 포함하는 문자 목록으로 제공 됩니다.
산출
입력 문자열에서 왼쪽 및 오른쪽 회전에 해당하는 모든 경로를 걸을 수 있습니다. 단, 각 줄보다 한 단계 이상 앞으로 나아가 야합니다. 특히 이것은 문자열이 시작 R
하면 가장 왼쪽 열에서 즉시 남쪽으로 갈 수 없다는 것을 의미합니다 . 또한 그 자리에서 180도 정도 돌릴 수 없다는 것을 의미합니다.
끝에 도달 한 건물이나 식당을 제외하고는 건물이나 식당을 걸을 수 없습니다. 왼쪽 상단 모서리가이라고 가정 할 수 있습니다 .
.
친구의 지시에 따라 도달 할 수있는 모든 식당을 문자열 또는 목록으로 출력해야합니다.
지시 사항에 따라 하나 이상의 식당이 있다고 가정 할 수 있습니다. 예 L
를 들어 위의지도 에는 단일 항목 이 유효하지 않습니다.
위의지도에 대한 몇 가지 예 :
<empty> A
R F
RR B,D
RL C,E
RLRL E
RLLR C
RLLL B
RLRR D
RLRRRR A,C
RLLLRLL B
특히에 R
도달하지 않습니다 B
.
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
표준 코드 골프 규칙이 적용됩니다.
추가 테스트 사례
다음은 Conor O'Brien이 제공 한 더 큰지도입니다 .
.......Y..........................######
.####.....#.##....##..######....#.###.##
B.........#.##.#..##....##...##.#.#P...#
.#.#####..#.##..#.##....##.#....#.####.#
.#.#...C..#.##...G##..#.##.#....#.#....#
.#.#.#.#..#.####.###.#..##.#....#.#.NO.#
.#.#A#.#..#.##...F###...##.#.##.#......#
.#.###....#.##....##....##.#....###....#
.#.....##...##....##...D##........###R.#
.#.##..##...##E...##..######....####...#
.....X....#.#.....................##S.T#
###########.###########M############...#
#................................###.#.#
#.#########.########.######.#.######.#.#
#......V#.....######.IJ...........##.#.#
#########.###......ZH############L##.#.#
#########.##########.###############.#.#
####K##...##########.#....#..........#.#
####....########U......##...#######Q.#.#
#####################################W.#
다음은 몇 가지 선택된 길 찾기 목록과 예상 결과입니다.
<empty> Y
RR B
RLL Y
RLRR B,C,X
RLLLRRR G
RLRLRLRL I,Z
RLLRRRLRRLRR C,D,F,G,Y
RLRRLLRLLLRL B,C,Y
RLLRRLRRRLLLL F,M,N,O,Y
RLRRLLLRRRRLLLL F,M,Y
RLRRLRRRRRRRRRR E,F,Y
RLRRRLLLRLLRRLL M,N,O
RLLRRLRRLRLRLRRLLR E,U
RLRLLRLRRLRRRRRLRL F,G,I,Z
RLLRRLLRLLRRRLRRLLRR W
RLLLRRRLRRLLLLLRLLLLLL D,G,X
RLRLLRLRRLRLRRRLRLLLRR B,C,E,J,X
RLRLRLLLLRLRRRRRRLRLRRLR Y
RLRLRRRLRLLLLRLRRLLLLRLLRRL E,M,X
RLRLLLRRRLLLRLLRLLRLRRLRLRR B,E,F,K
RLRRRLLLLLLLLLLLLLLLRRRRLLL A,B
보너스 질문 : 입력은이 결과가 단지 I
또는 전용 U
? 그렇다면 가장 짧은 경로는 무엇입니까?