カメヲラボ

主にプログラミングとお勉強全般について書いてます

CodeIQ過去問集21:ABC迷路

本エントリはCodeIQで2014年6月30日~8月25日に出題された コード銀行:ABC迷路 という問題を再編集したものです。 ※出題時と記述が一部異なる場合がありますがご了承ください。

ABC迷路

次のように、"A", "B", "C"が矩形に並べられています。

この矩形の左上をスタートとし、右下をゴールとします。 スタート地点から、"A", "B", "C", "A", "B", "C", "A", "B", …のように移動します。 移動できる範囲は、現在地点から上・下・左・右のみです。

上記の例で、左上は"A"となっています。また、この地点は矩形の端になりますので、上と左の方向には移動できません。 右と下の方向は、"A"の次にあたる"B"になっていますので、どちらにも移動することがきます。 右側の"B"に移動すると、さらに右側に"C"がありますので、さらに移動することが可能ですが、下側の"B"に移動してしまうと、隣接箇所に"C"が一つも無く、移動することができません。

このようなルールで進めていくと、次のようなルートを辿ればゴールまでたどり着くことができます。

【問題】

迷路(ABCの矩形データ)がテキストファイルとして与えられます。 それを読み込んで、迷路のスタート地点からゴール地点までたどり着けるかを判定し、たどり着ける場合は"possible"、たどり着けない場合は"impossible"と表示してください。 ただし、迷路上の同じ地点を2回以上通ってはいけません

【例】

入力

ABCA
BACB
ABBC
ACAB

出力

possible

【解答方法】

まずはabc_maze.zipをダウンロードしてください。 中には10個のファイルが含まれています。

  • sample.in.txt, sample.out.txt

例で示したデータと、その解答です。

  • case1.in.txt, case2.in.txt, case3.in.txt, case4.in.txt, case5.in.txt, case6.in.txt, case7.in.txt

これらを入力として、プログラムの実行結果を解答してください。

  • answer.txt

上記の入力に対する正解が書かれています。

(解説は後日)