Uwaga: Opiera się to na dwóch drogach podzielonych na żółte drewno (część 2) , które było moim wcześniejszym wyzwaniem. Ze względu na popularność tego pytania i dwie drogi rozbieżne w żółtym lesie (część 1) , chciałem zrobić trzecią. Ale pierwsze 2 były zbyt łatwe (odpowiedź 2-bajtowa na pierwszym, odpowiedź 15-bajtowa na drugim.) Zrobiłem więc coś bardziej złożonego ...
Inspiracja
Wyzwanie to inspirowane jest słynnym wierszem Roberta Frosta „ Droga nie podjęta” :
Dwie drogi rozchodziły się w żółtym lesie.
I przepraszam, że nie mogłem podróżować obaj
I być jednym podróżnikiem, długo stałem
I patrzyłem w dół jak najdalej,
do miejsca, gdzie zakrzywiał się w zaroślach;... przycięte 2 akapity ...
Będę opowiadać z westchnieniem
Gdzieś wieki i wieki stąd:
Dwie drogi rozchyliły się w lesie, a ja -
wziąłem tę mniej uczęszczaną,
i to zrobiło różnicę.
Zauważ przedostatniej linii I took the one less traveled by,
.
Historia
Zostałeś przydzielony do pomocy niewidomemu poszukiwaczowi przygód, który idzie drogą, i zainspirował cię Droga nie zabrana . Poszukiwacz przygód zbliża się do rozwidlenia drogi i chciałby wybrać mniej uczęszczaną ścieżkę. Musisz znaleźć, gdzie naprawdę jest poszukiwacz przygód i powiedzieć poszukiwaczowi, gdzie ma się zwrócić.
Wyzwanie
Twoim celem jest znalezienie na mapie drogi, po której najmniej przebyłeś, w miejscu, w którym rozwidla się droga. Twoja mapa jest ciągiem zawierającym znaki nowej linii (lub \n
, jeśli wolisz) i ma nieznaną szerokość i wysokość. Na mapie drogi składają się z cyfr od 0 do 9 , skrzyżowanie z #
s. Musisz znaleźć drogę, na której aktualnie się znajdujesz, a spośród pozostałych dróg drogę, którą najczęściej podróżowałeś, oraz drogę, którą mniej podróżowałeś dla niewidomych poszukiwaczy przygód. Lasy na twojej mapie są reprezentowane przez spację. Oto prosta mapa:
2 2
1 0
#
2
2
Ta mapa ma 5 szerokości i 5 wysokości. Zwróć uwagę, jak droga rozwidla się w kształcie litery Y. Y może być zorientowany w dowolny sposób, więc musisz być w stanie zrozumieć „obróconą” mapę.
Co #
znaczy
Tam, gdzie rozwidla się mapa, będzie #
. Nie wpływa to na wynik żadnej ścieżki.
Co tak naprawdę oznaczają liczby
Każda ścieżka (linia liczb, może mieć zakręt) ma wynik. Wynik ścieżki jest określany poprzez zsumowanie jej cyfr, więc w pierwszym przykładzie pierwsza ścieżka (od lewego górnego rogu, zgodnie z ruchem wskazówek zegara) ma wynik 2 + 1 = 3, druga ma 2 + 0 = 2, a trzecia ma 2 + 2 = 4. Drogi mogą zawierać numery połączone po przekątnej.
Znalezienie gdzie jesteś
Jesteś na ścieżce z najwyższym wynikiem. Pozostałe 2 ścieżki to droga, po której częściej się porusza, i droga, którą mniej się jeździ. Musisz znaleźć drogę z najniższym wynikiem.
Informowanie podróżnika, gdzie się udać
Musisz powiedzieć podróżnemu, aby poszedł „w lewo” lub „w prawo”. Pamiętaj, że wskazówki są z punktu widzenia podróżnika (jest skierowany w stronę widelca).
Przykładowe mapy
14
9#
04
Wyjście: „w prawo” (podróżny jest na 9
drodze, 0 + 4 <1 + 4
9
9
9
9
9
#
8 8
8 8
88 88
8 7
Wyjście: „w lewo” (podróżny jest na 99999
drodze, 8 + 8 + 8 + 8 + 8> 8 + 8 + 8 + 8 + 7
02468
#98765
13579
Wyjście: „w prawo” (podróżny jest na 98765
drodze, 0 + 2 + 4 + 6 + 8 <1 + 3 + 5 + 7 + 9)
4 2
4 2
#
4
4
2
2
Wyjście: „w prawo” (podróżny jest na 4422
drodze, 4 + 4> 2 + 2)
9
9
9
#
8 7
8 7
8 7
Wyjście „w lewo” (podróżny jest na 999
drodze, 8 + 8 + 8> 7 + 7 + 7
Rzeczy, które należy wiedzieć:
- Mapy zostaną wypełnione spacjami, aby każda linia miała taką samą długość.
- Musisz wyprowadzić do STDOUT / console / file ciąg znaków
left
lubright
, opcjonalnie, po którym następuje końcowy znak nowej linii. - Musisz wziąć dane wejściowe jako ciąg zawierający znaki nowej linii,
\n
s lub tablicę / listę linii (każda linia jest łańcuchem). Tam, gdzie wprowadzane są dane wejściowe, musi być funkcja, argument wiersza poleceń, plik lub STDIN, jeden wiersz na raz lub podobny. Zmienna nie jest akceptowalnym urządzeniem wejściowym (chyba że jest parametrem funkcji). Podobnie, wyrażenia funkcyjne w JS i innych językach muszą być przypisane do zmiennej. - To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach!
- Standardowe luki zabronione
Rzeczy, które możesz założyć
- Twój wkład będzie ważny. Nic takiego nie będzie testowane pod kątem:
0 0 0 0 0 # 0 0
- Wyniki ścieżek nigdy nie zostaną powiązane.
- Dane wejściowe mogą mieć dowolną długość, szerokość lub wysokość, mniejszą niż limit napisów w Twoim języku.
- Zawsze będzie co najmniej 1 spacja między 2 ścieżkami.
- Ścieżki mogą mieć zakręty, zakręty itp. Są to drogi, a nie autostrady.
Jakieś pytania? Zapytaj mnie poniżej w komentarzach i życzę udanej gry w golfa!
źródło
#
zawsze będzie w centrum poziomo?Odpowiedzi:
D ,
348321312302 bajtówNie golfił
Wypróbuj online!
źródło
Python 2, 304 bajty
Wypróbuj online
Ten program określa kierunek dróg i obraca je przodem do góry, aby wykorzystać moje rozwiązanie z części 2 tego wyzwania.
źródło