ビルディングパズルは矢印の方向から数字の数だけのビルが見えるように高さの違うビルを並べるパズルです。各マスにはビルの高さを表す数字が入ります。1なら1階建てのビルです。高いビルが手前にくると低いビルは見えなくなることを頭に置いておきましょう。タテヨコ列のマスの数だけ違う高さのビルが存在するので、各列に数字はそれぞれ一度ずつ使われます。例えば下記問題では、タテヨコ5マスなので1階の高さのビルから5階の高さまでのビルが各列に存在します。つまり1~5の数字が一度ずつタテヨコに配置されます。ではどうやって矢印の方向から見えている数だけビルを配置していくのか解き方を見てみましょう。
まず、矢印のヒントに1か列の最大数が与えられていたらそこから始めてみましょう。ヒントが1ということは、矢印の方向から見えているビルは1本。つまり一番高いビルが先頭にきます。ヒントが最大数であれば、その方向からはその列に入るビルがすべて見える状態です。:
下記左図で、中央上の1のヒントに注目してみます。この方向から見えるビルは1本なので、まずこのタテ列の一番先頭に5階建のビル、つまり5を配置します。
NxNサイズでは、ヒント数字のNは矢印方向から全てのビルが見えることを意味します。例題の右下5のヒントに注目してみます。矢印の方向からビル5本が全て見えるようにするには矢印の方から一番低い1階建てのビルから5階建のビルまで低い順に並べます。
基本が理解できたらベーシックテクニックを見てみましょう。次にどこにビルを配置できるか、ピュアなロジックで分析しながら進めるようになる為のテクニックです。:
スタートポイントの数字を埋めた後に、その次に高いビルのヒントがないか探してみます。例題中央のタテ列に注目します。列下の矢印の方向から4本のビルが見えているということは、?部分のどちらかに一番高いビルの5が入ることになります。ここでヨコ1列目を見てみると、既に5が配置されていることに気が付きます。同じ高さのビルは同じ列に入らない、つまり数字は各列で1度ずつしか使えないので上から2番目の?に5が決定します。
いくつかのヒント数字を見て次の数字が決まることがあります。例題でヨコ1列目のどこに4が入るか考えてみます。ヨコ1列目では、左から3本ビルが見えていないといけないので、左から一番目のマスに4を入れることはできません。次に左から2番目のマスはどうでしょう。マスが属するタテ2列目には既に4が存在するのでNGです。次に一番右のマスはどうでしょう。マスが属するタテ5列目は、上方向から4本ビルが見えていないといけないので、ここにも4を入れることができないと判断します。よって、唯一可能性が残された左から3つ目のマスに4が決定します。
並び順が一通りしか考えられないケースがあります。例題のタテ5列目に注目してみます。ここでは 2、3、4、5 がまだ配置されていません。下の矢印の方向から4本のビルが見えるようにするには右図のように1通りの並び順しか考えられません。
いくつかマスを埋めた後に有効なテクニックです。図は同じ高さのビルは同じタテヨコ列に存在しないというルールに基づきマスに入る数字が決まるケースです。ヨコ2列目、4列目で4階建てと5階建てのビルが入る可能性のある個所を探してみます。2列目で4が入る可能性のあるマス、又4列目で5が入る可能性のあるマスは唯一図の箇所になります。この2か所が決まると、続いてヨコ3列目の一番左のマスに4が決定します。
ヒント数字2の方向から見て列の逆サイドに最も高いビルが存在する場合、ヒント数字の方向から見て先頭のマスに列で次に高いビルが配置されます。例えば図の?には4が入ります。これでタテ1列目のヒント数字2の方向からは4階建と5階建のビル2本だけが見えます。
ヒント数字2に最も低いビルが隣接している場合、その次のマスには列で最も高いビルが配置されます。例えば図の?には5が入ります。これで一番下のヨコ列のヒント数字2の方向からは1階建と5階建のビル2本だけが見えます。
ヒント数字2がある場合で、列で2番目に高いビルはヒント数字2からみて2番目のマスには配置できません。例えば、図の箇所に4を入れるとすると、2の方向から見て手前のマスに1~3を入れるとビルが3本見えてしまいます。5を入れるとすると、5階建てのビルしか見えません。
問題のレベルが高くなると、ベーシックテクニックだけでは十分ではなくなり、より洗練された上級の解法テクニックを理解することが必要です。アドバンステクニックをマスターし色々な状況に出会いチャレンジすることでビルディングパズルがもっと楽しくなることは間違いありません!:
?のマスに入る可能性のある数字を考えてみます。右の方向から2本のビルが見えるようにするには3か4の候補が考えられます。まずこのマスに3を入れるとしましょう。この場合4は5より後ろに入れば大丈夫ですが、タテ1列目には既に4が存在しているのでヨコ2列目では4を5より手前のマスに配置することになってしまい矢印の方向からビルが3本見えてしまいます。よって?のマスには4が決定します。
中央タテ列で4がどこに入るか考えてみます。まず一番上のマスは同じヨコの列に既に4が存在しているのでダメです。次に5の一つ上のマスはどうでしょう。上から見て2本以上のビルが見えてしまうので上のヒント数字2と矛盾してしまいます。同様に5の一つ下のマスに4を入れるとすると下から見て2本以上のビルが見えてしまうのでこちらもダメです。よって、この列で唯一残された一番下のマスに4が決定します。
一番右のタテ列で5がどこに配置できるか考えてみます。まず一番上のマスは上にヒント数字2がある為不可能です。次に一番下のマスは同じヨコ列に既に5が存在しているのでダメです。次に上から2番目に5を入れるとすると、ヨコ2列目で左ヨコから見てビルが2本だけ見えるようにするには、タテ1列目の上から2番目のマスに4が配置されなければなりませんが、列には既に4が存在しているので不可能です。よってこの列で残された上から3番目のマスに5が決定します。
一番右のタテ列で?に入る数字を考えてみます。まず4と5はマスの属するヨコ列とタテ列に既に存在するので候補から外します。次に1はどうか考えてみると、このマスに1を入れてしまうとヨコ列の他のマスにどう数字を入れてもヨコ右方向から3つのビルが見えるようには並べられないので1もダメです。3はどうかというと、タテ列の上からビルが2本見えるようにするには3の上に4が来ることが条件ですが、?の上のマスに4を入れるとなると、今度はヨコ1行目の右のヒント数字3と矛盾してしまいます。よって唯一残された数字の2が決定です。
一番下のヨコ列に注目してみます。2つの4のヒント数字から、右側の2マスに入る候補はそれぞれ1か2となります。どちらの順番で1と2が配置されるかはこの時点ではわからないので保留にしておきます。右から3つ目に入る候補を考えてみると、ヨコ列で残された数字の3、4、5のいずれかになります。まず3はどうか考えてみると、タテ列に既に3が存在しているのでダメです。次に5を入れてしまうとヨコ右方向から4つのビルが見えるようにすることは不可能です。よって唯一残された4が?のマスに決定です。
一番右のタテ列に注目してみます。この時点で上から3番目に入る可能性のある数字は、右ヨコのヒント数字4により1か2になります。続いて上2マスの?に入る候補は列の下4のヒント数字から4か5しか考えられません。どの順で4と5を配置すればよいか考えてみます。まず一番上のマスに4を入れるとすると、残りの数字をどう並べても下のヒント数字4に矛盾してしまうのでダメです。よって一番上のマスには5が決定します。