참고 : 이것은 이전의 도전 과제 인 노란 나무 (2 부)로 분기 된 두 개의 도로를 기반으로 합니다. 그 질문의 인기와 두 개의 도로가 노란 나무로 갈라져서 (1 부) , 나는 3 분의 1 을 만들고 싶었습니다. 그러나 첫 번째 2는 너무 쉬웠습니다 (첫 번째에는 2 바이트 대답, 두 번째에는 15 바이트 대답) 그래서 더 복잡한 것을 만들었습니다 ...
영감
이 도전은 Robert Frost의 유명한 시인 The Road Not Taken 에서 영감을 얻었습니다 .
두 개의 도로가 노란 나무로 갈라져서
죄송합니다. 둘 다 여행 할 수 없었습니다.
그리고 한 명의 여행자가되어서 오랫동안 서있었습니다.
그리고
덤불에서 구부러진 곳 까지 가능한 한 내려다 보았습니다 .... 2 단락이 잘립니다 ...
나는 한숨을 쉬며
어딘가에 이것을 말해 줄 것이다. 그래서
두 개의 도로가 나무로 갈라져 나갔다. 그리고 나는 —
덜 여행 한 길을 택했다.
그리고 그것은 모든 차이를 만들었다.
두 번째 행부터 마지막 행까지 주목하십시오 I took the one less traveled by,
.
뒷이야기
당신은 길을 걷고있는 맹인 모험가를 돕기 위해 배정되었고 The Road Not Taken 에서 영감을 받았습니다 . 모험가가 도로에서 포크에 접근하고 덜 여행하는 길을 가고 싶습니다. 모험가가 실제로 어디에 있는지 찾아서 모험가에게 방향을 알려야합니다.
도전
당신의 목표는 도로가 분기되는지도에서 가장 적게 여행 한 도로를 찾는 것입니다. 지도는 개행 문자 (또는 \n
원하는 경우)를 포함하는 문자열 이며 너비와 높이를 알 수 없습니다. 지도에서 도로는 0에서 9 까지의 숫자 로 구성 되고 교차로는 #
s로 구성됩니다. 현재 진행중인 도로와 다른 도로에서 가장 많이 이동 한 도로와 맹인 모험가를 위해 덜 이동 한 도로를 찾아야합니다. 당신의지도에 숲은 공백으로 표시됩니다. 간단한지도는 다음과 같습니다.
2 2
1 0
#
2
2
이지도는 폭 5와 높이 5입니다. 도로가 어떻게 Y 모양으로 분기되는지 확인하십시오. Y는 어떤 방향으로도 향할 수 있으므로 "회전 된"맵을 이해할 수 있어야합니다.
어떤 #
수단
지도가 분기되는 곳에가 있습니다 #
. 이것은 경로의 점수에 영향을 미치지 않습니다.
숫자가 실제로 의미하는 것
각 경로 (숫자 라인, 구부러 질 수 있음)에는 점수가 있습니다. 패스의 점수는 숫자를 합산하여 결정되므로 첫 번째 예의 경우 첫 번째 경로 (왼쪽 위부터 시계 방향)는 2 + 1 = 3, 두 번째는 2 + 0 = 2, 세 번째는 2 + 2 = 4입니다. 도로에는 대각선으로 연결된 숫자가 포함될 수 있습니다.
당신이 어디에 있는지 찾기
가장 높은 점수를받은 경로에 있습니다. 다른 두 경로는 더 많이 이동 한 도로와 덜 이동 한 도로입니다. 가장 낮은 점수를 받은 도로를 찾아야합니다 .
여행자에게 어디로 가야하는지 알려주기
여행자에게 "왼쪽"또는 "오른쪽"으로 가라고 지시해야합니다. 방향은 여행자의 관점에서 나온 것임을 명심하십시오 (그는 포크를 향하고 있습니다).
지도 예
14
9#
04
출력 : "오른쪽"(여행자는 9
도로에 있습니다. 0 + 4 <1 + 4
9
9
9
9
9
#
8 8
8 8
88 88
8 7
출력 : "왼쪽"(여행자는 99999
도로에 있습니다. 8 + 8 + 8 + 8 + 8> 8 + 8 + 8 + 8 + 7
02468
#98765
13579
출력 : "오른쪽"(여행자는 98765
도로에 있습니다. 0 + 2 + 4 + 6 + 8 <1 + 3 + 5 + 7 + 9)
4 2
4 2
#
4
4
2
2
출력 : "오른쪽"(여행자는 4422
도로에 있습니다. 4 + 4> 2 + 2)
9
9
9
#
8 7
8 7
8 7
"왼쪽"출력 (여행자는 999
도로에 있습니다. 8 + 8 + 8> 7 + 7 + 7
알아야 할 사항 :
- 각 줄을 같은 길이로 만들기 위해 공백으로지도를 채 웁니다.
- STDOUT / console / file에 문자열
left
또는을 출력하고right
선택적으로 후행 줄 바꿈을 따라야합니다. - 개행,
\n
s 또는 배열 / 행 목록을 포함하는 문자열로 입력을 받아야합니다 (각 행은 문자열 임). 해당 입력을 넣는 위치 에는 함수, 명령 행 인수, 파일 또는 STDIN이 한 번에 한 행 또는 이와 유사해야합니다. 변수는 허용 가능한 입력 장치가 아닙니다 (함수 매개 변수가 아닌 한). JS 및 기타 언어의 함수 표현식은 변수에 지정되어야합니다. - 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다!
- 금지 된 표준 허점
가정 할 수있는 것
- 입력하신 내용이 유효합니다. 다음과 같은 것은 테스트되지 않습니다.
0 0 0 0 0 # 0 0
- 패스 점수는 연결되지 않습니다.
- 입력은 언어의 문자열 제한보다 작은 너비 또는 높이의 길이 일 수 있습니다.
- 두 경로 사이에는 항상 최소한 하나의 공백이 있어야합니다.
- 경로에는 구부러짐, 회전 등이있을 수 있습니다. 고속도로가 아닌 도로입니다.
#
항상 수평 중앙에?