Not: Bu, daha önceki bir sorunum olan sarı ahşapta (bölüm 2) ayrılmış iki yola dayanmaktadır . Bu sorunun popülaritesi ve sarı ahşapta (yol 1) iki yol ayrıldığı için üçüncüsünü yapmak istedim. Ama ilk 2 çok kolay (bir vardı 2 bayt ilk on cevap, ikinci bir 15 bayt cevap.) Bu yüzden daha karmaşık bir şey yaptı ...
İlham
Bu zorluğun ilham kaynağı Robert Frost'un ünlü şiiri The Get Not Road :
Sarı bir ağaçta iki yol ayrıldı,
Ve üzgünüm ben de seyahat edemedim
Ve bir gezgin olmak, uzun süre durdum
Ve olabildiğince bir aşağı baktı
Bir yerde çalılar bükülmüş nereye;... 2 paragraf kesilmiş ...
Bunu bir nefesle söyleyeceğim
Bir yerlerde yaşlar ve çağlar bundan dolayı:
İki yol bir ormanda saptı ve ben -
daha az seyahat edileni aldım,
Ve bu tüm farkı yarattı.
Son satırdan son satıra dikkat edin I took the one less traveled by,
.
Backstory
Bir yolda yürüyen ve Alınan Yol'dan esinlenen kör bir maceracıya yardım etmek için görevlendirildiniz . Maceracı yolda bir çatala yaklaşıyor ve daha az seyahat edilen yolu almak istiyor. Maceracının gerçekte nerede olduğunu bulmalı ve maceracıya nereye döneceğini söylemelisin.
Meydan okuma
Amacınız, haritanızda en az gidilen yolu yolun çatallandığı yer bulmaktır. Haritanız yeni satırlar içeren (veya \n
isterseniz) bir dizedir ve genişliği ve yüksekliği bilinmemektedir. Haritada yollar 0-9 arasındaki rakamlardan , kavşak ise #
s. Şu anda bulunduğunuz yolu ve en çok seyahat ettiği yoldan ve kör maceracı için daha az gidilen yolu bulmalısınız. Haritanızdaki ormanlar bir boşlukla temsil edilir. İşte basit bir harita:
2 2
1 0
#
2
2
Bu harita 5 geniş ve 5 boyunda. Yolun Y şeklinde nasıl çatallandığına dikkat edin. Y herhangi bir şekilde yönlendirilmiş olabilir, bu nedenle "döndürülmüş" bir haritayı anlayabilmeniz gerekir.
Ne #
demek
Haritanın çatallandığı yerde bir #
. Bu herhangi bir yolun puanını etkilemez.
Sayılar aslında ne anlama geliyor?
Her yolun (bir sayı çizgisi, içinde bir bükülme olabilir) bir puanı vardır. Bir yolun puanı, rakamlarının toplanmasıyla belirlenir, bu nedenle ilk örnek için ilk yolun (soldan, saat yönünde) 2 + 1 = 3 puanı, ikincisinin 2 + 0 = 2 ve üçüncü yolu 2 + 2 = 4. Yollar çapraz olarak bağlanmış sayılar içerebilir.
Nerede olduğunuzu bulma
En yüksek puanı alan yoldasın. Diğer 2 yol ise daha çok gidilen yol ve daha az gidilen yol. En düşük puana sahip yolu bulmanız gerekiyor .
Yolcunuza nereye gideceğini söyleme
Yolcunuza "sola" veya "sağa" gitmesini söylemelisiniz. Yol tariflerinin gezgininizin bakış açısından olduğunu unutmayın (çatala dönük.)
Örnek haritalar
14
9#
04
Çıktı: "sağ" (gezgin 9
yola çıktı, 0 + 4 <1 + 4
9
9
9
9
9
#
8 8
8 8
88 88
8 7
Çıktı: "sol" (gezgin 99999
yolda, 8 + 8 + 8 + 8 + 8> 8 + 8 + 8 + 8 + 7
02468
#98765
13579
Çıktı: "sağ" (gezgin 98765
yolda, 0 + 2 + 4 + 6 + 8 <1 + 3 + 5 + 7 + 9)
4 2
4 2
#
4
4
2
2
Çıktı: "sağ" (gezgin 4422
yolda, 4 + 4> 2 + 2)
9
9
9
#
8 7
8 7
8 7
Çıktı "sol" (gezgin 999
yola çıktı, 8 + 8 + 8> 7 + 7 + 7
Bilmeniz gerekenler:
- Haritalar, her satırı aynı uzunlukta yapmak için boşluklarla doldurulur.
- Dizeyi STDOUT / console / file
left
ya daright
isteğe bağlı olarak sondaki bir yeni satır izlemeniz gerekir. - Girdiyi, yeni satırlar,
\n
s veya bir dizi / satır listesi içeren bir dize olarak almalısınız (her satır bir dizedir). Bu girişin koyulduğu yerde bir fonksiyon, komut satırı argümanı, dosya veya STDIN her seferinde bir satır veya benzeri olmalıdır. Bir değişken kabul edilebilir bir giriş cihazı değildir (bir işlev parametresi değilse.) Benzer şekilde, JS ve diğer dillerdeki işlev ifadeleri bir değişkene atanmalıdır. - Bu kod golf , bu yüzden bayt en kısa cevap kazanır!
- Standart boşluklar yasaktır
Varsayabileceğiniz şeyler
- Girişiniz geçerli olacak. Bunun gibi hiçbir şey aşağıdakiler için test edilmeyecektir:
0 0 0 0 0 # 0 0
- Yolların puanları hiçbir zaman bağlanmayacaktır.
- Giriş, dilinizin dize sınırından daha düşük herhangi bir genişlikte veya yükseklikte olabilir.
- 2 yol arasında her zaman en az 1 boşluk olacaktır.
- Yolların kıvrımları, dönüşleri vb. Olabilir. Bunlar karayolları değil, yollardır.
#
her zaman yatay merkezinde olmak?