注:これは、以前の私の挑戦であった、黄色の木材に分岐した2本の道路(パート2)に基づいています。その質問の人気と2つの道路が黄色の森に分岐したため(パート1)、3 つ目の道路を作成したいと思いました。しかし、最初の2は、あまりにも簡単(た2バイトの最初の答えは、第二の15バイトの答え。)だから私は、より複雑な何かをしました...
インスピレーション
この挑戦は、ロバート・フロストの有名な詩、「道はとられない」に触発されました。
黄色い森に分かれた2本の道、
そして申し訳ありませんが、両方を旅することはできませんでした。
一人旅人になり、長い間立ち
、できるだけ下を見下ろし
ました。... 2段落をトリミング...
私はため息をついてこれを言います。
年齢とそれゆえ年齢:
2つの道路が森の中で分岐し、私は—通行が
少ない方の道路を利用しました
。それがすべての違いを生んでいます。
最後から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番目のパスは2 + 0 = 2、3番目のパスは2 + 2 = 4です。道路には、斜めに接続された数字が含まれている場合があります。
現在地を見つける
あなたは最高得点の道を進んでいます。他の2つのパスは、移動が多い道路と移動が少ない道路です。最も低いスコアの道路を見つける必要があります。
旅行者にどこへ行くかを伝える
旅行者に「左」または「右」に行くように指示する必要があります。方向は旅行者の視点からのものであることを覚えておいてください(彼はフォークに面しています)。
マップの例
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
知っておくべきこと:
- 各行が同じ長さになるように、マップにはスペースが埋め込まれます。
- 文字列
left
またはをSTDOUT / console / fileに出力する必要がありright
ます。オプションで、その後に改行が続きます。 - 入力は、改行、
\n
s、または行の配列/リスト(各行は文字列)を含む文字列として受け取る必要があります。その入力が置かれる場所は、関数、コマンドライン引数、ファイル、またはSTDINである必要があります。変数は(関数パラメーターでない限り)許容される入力デバイスではありません。同様に、JSおよび他の言語の関数式を変数に割り当てる必要があります。 - これはcode-golfなので、バイト単位の最短の回答が優先されます。
- 禁止されている標準の抜け穴
想定できること
- 入力は有効になります。このようなものはテストされません:
0 0 0 0 0 # 0 0
- パスのスコアは決して結び付けられません。
- 入力の長さは、幅または高さを問わず、言語の文字列制限未満にすることができます。
- 2つのパスの間には常に少なくとも1つのスペースがあります。
- パスには曲がり、曲がり角などがある場合があります。これらは高速道路ではなく道路です。
#
は常に水平に中央にありますか?