左上隅から始まるヘリコプターは、地面に向かって(この質問では、2D空間で)下降しています。自動操縦モードと手動モードがあります。
自動操縦モードは次のように動作します。
- 真下のスペースが空いていれば下へ。
- それ以外の場合は、ステップを完全にランダムに左または右に移動します。(この方法で複数のステップを移動する場合があります。)
そして、地面にぶつかるまで、これらの2つのステップを繰り返し続けます。手動モードはよりスマートで、上方向への移動や巧妙な操作が必要な場合でも、地面への最適な経路を見つけます。
あなたの仕事は
- オートパイロットは、指定されたシナリオで合格します。
- オートパイロットは、特定のシナリオで失敗する可能性があります。
- 自動操縦は失敗しますが、手動モードは成功します、または
- どちらのモードも失敗します(地面への有効な経路がありません)。
入力
- 1dまたは2dの空でない配列としてのシナリオを想定し、2つの異なる文字を使用して空きスペースとブロックされたスペースを表します。句読点はオプションです。
- オプション:配列の次元
出力
どのケースが発生したかを示す4つの定義済み文字の1つ。
サンプルデータ
入力で0(空)と1(ブロック)を使用し、出力で1 2 3 4(上記の番号)を使用
0 0 0 0
0 1 0 0
0 0 0 1
1 1 0 0
出力: 1
0 0 1 0
1 0 0 1
0 0 0 0
0 1 1 0
0 0 0 1
出力:(2
自動操縦モードの場合、ヘリコプターは4番目の行の1に遭遇し、行5の終わりにそれ自体をトラップする可能性があります)
0 0 0 1 0
0 1 1 0 0
0 1 0 0 0
0 0 0 1 0
1 1 1 1 0
出力:(3
これは上方に移動する必要があるため、自動操縦は失敗します)
1 0 0
0 0 0
出力: 4
0 0 0 0 1
1 1 1 0 0
1 0 0 1 0
0 1 0 0 0
0 0 1 1 1
出力: 4
@MartinBüttner完了しました。補足として、サンドボックスに投稿する方がいいですか、それとも直接投稿してエラーを修正する方がいいですか。2番目のオプションの方が簡単なので、そうしないインセンティブがない限り、なぜオプション1に従うのか想像できません。
—
ghosts_in_the_code 2016年
私が個人的にサンドボックスを好むのは、チャレンジに取り掛かる前に、潜在的なエラー、抜け穴、または欠落しているテストケースについて考える時間を人々に与えるためです。誰かが欠陥のあるチャレンジに対する早期の回答を投稿した場合、既存の回答を無効にしない限り、チャレンジを実際に修正することはできません。
—
マーティンエンダー
また、入力は常に文字ですか、それともブール値/整数値などにすることができますか?そして出力-それは整数にすることができますか、それとも文字である必要がありますか?
—
チャールズが