Python2でCodeEvalのSUDOKU

CodeEval

サイズと数列が渡される。

サイズは4か9である。
4の場合は4*4=16、9の場合は9*9=81の数字がサイズに続けて渡される。

渡された数字の並びが数独の答えとして成立しているかどうかをTrue or Falseで出力する

input

4;1,4,2,3,2,3,1,4,4,2,3,1,3,1,4,2
4;2,1,3,2,3,2,1,4,1,4,2,3,2,3,4,1

output

True
False

1つ目の入力値だと以下の配置になり、縦、横、ボックスをチェックして、1〜4までが重複無く収まっているのでTrueとなる

[1, 4, 2, 3]
[2, 3, 1, 4]
[4, 2, 3, 1]
[3, 1, 4, 2]

2つめの入力値だと以下のとおりでFalseとなる

[2, 1, 3, 2]
[3, 2, 1, 4]
[1, 4, 2, 3]
[2, 3, 4, 1]


チェックすべきindexの並びを算出するのが面倒なので定数にしといた。