これは、この課題のはるかに簡単なバージョンです。この課題はコードゴルフですが、もう1つは最速コードです。
もし寸法、正方形入力グリッドを与えられるだろう6×6に分割され、6つの各領域の細胞はIから小文字を使用します(一意の識別子有する領域、AF、ここではテキストでのしかし、たとえば整数1-6のように、好きなように選択することができます。
入力は次のようになります(オプションの入力フォーマット):
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
または、視覚化しやすくなります:
チャレンジ:
次の規則に従って、この公園に6本の木を配置します。
- 正確がなければならない1列あたりの木、および1行あたりの木
- すべての領域には、正確に1つのツリーが必要です。
- 垂直方向、水平方向、または斜め方向に他の木に隣接することはできません
上記のレイアウトの解決策は次のとおりです。
注:各パズルに対する解決策は1つだけです
追加のルール:
- 入力および出力フォーマットはオプションです
- 出力は、たとえば、インデックスのリスト、その位置にツリーがあるかどうかを示す1/0のグリッド、またはツリーが示されている入力の修正バージョンなどです。
- 実行時間は確定的でなければなりません
- プログラムは妥当な最新のラップトップで1分以内に終了する必要があります
- ブルートフォースしないとブラウニーポイント!
テストケース:
aabbbb
aabbbb
aaccbb
acccdb
ecccdb
eeefff
---
aAbbbb
aabbbB
aaCcbb
acccDb
Ecccdb
eeeFff
----------
aabccc
aacccc
aaddce
aeeeee
aeeefe
eeeeee
---
aaBccc
aacccC
aadDce
Aeeeee
aeeeFe
eEeeee
----------
aaaabb
aacbbb
aadddb
addeef
ddddee
dddeee
---
aaaaBb
aaCbbb
Aadddb
addeeF
dDddee
dddEee
----------
abbbcd
abebcd
addddd
dddddd
effdff
eeffff
---
abBbcd
abebCd
Addddd
dddDdd
effdfF
eEffff
解析が少し簡単な形式の同じテストケース:
Test case 1:
[1,1,2,2,2,2;1,1,2,2,2,2;1,1,3,3,2,2;1,3,3,3,4,2;5,3,3,3,4,2;5,5,5,6,6,6]
Test case 2:
[1,1,2,3,3,3;1,1,3,3,3,3;1,1,4,4,3,5;1,5,5,5,5,5;1,5,5,5,6,5;5,5,5,5,5,5]
Test case 3:
[1,1,1,1,2,2;1,1,3,2,2,2;1,1,4,4,4,2;1,4,4,5,5,6;4,4,4,4,5,5;4,4,4,5,5,5]
Test case 4:
[1,2,2,2,3,4;1,2,5,2,3,4;1,4,4,4,4,4;4,4,4,4,4,4;5,6,6,4,6,6;5,5,6,6,6,6]
数独ソルバーのように聞こえますが異なります。
—
juniorRubyist 2017