ああ、いや、私はマラコフの素晴らしい宝物を見つける途中で道に迷っています!そして、私が持っているのは、これらの役に立たない指示のように見えるだけですS10R10D30...私はそれらが何を意味するのか分かりません!手伝って頂けますか?
チャレンジ
からなる方向を指定してN E S W U D L R 1 2 3 4 5 6 7 8 9 0、これらの方向(つまり、ユークリッド距離)をたどったときに、開始地点からの距離を出力します。
N E S W 私が北、東、南、西を回っているのを参照してください。
U D L R私が上、下、左、右を回していることを参照してください(そうNRはと同じEですSL。そうです;はとSLL同じですN)。アップとは、前進し続けることを意味します。ダウンとは、向きを変えることを意味します。
各文字の方向の後に数字が表示されます。これは、その方向に進む距離です。N10E20つまり、北に10ユニット移動してから、東に向けて、20ユニット東に移動します。
入力詳細
- 入力は常に次のいずれかで始まり
NESWます(したがって、空白の入力を考慮する必要はありません)。 - 続けて2文字の指示が許可されます。
NE「北に曲がって、すぐに東に曲がってください」と解釈されるべきです。それはちょうど同じEです。SLL「南に曲がって、すぐに左に2回回す」です。と同じNです。 - すべての数値は整数になります(
.文字セットに含まれていないことに注意してください) - 入力は次のもののみで構成されます
NESWUDLR1234567890(Cの '\ 0'のような何か他のものが必要な場合、または言語の入力関数に末尾の改行がある場合は、それで問題ありません)。
出力
- 規範。
- 関数を使用する場合、数値データ型または文字列を出力する必要があります。
- 小数点以下3桁まで正確でなければなりません。
テストケース
N10:10N10E10:14.1421N10S10:0NSEWUDLR10:10N100RR20E300D40L12:268.7452ERR10LL20UN30D100:70.71067
これらを作成するために使用した想像力に欠けるPythonプログラム。
勝利
これはコードゴルフなので、1週間後の最下位バイトが勝ちます。
NESWUDLR1234567890か?