Diberikan teka-teki Sudoku, temukan semua tanda yang mungkin dapat diisi ke dalam setiap sel kosong.
Kasus cobaan
Memasukkan:
[
[
// Top left:
[
0, 0, 0,
3, 4, 0,
0, 0, 2
],
// Top middle:
[
7, 4, 0,
0, 0, 0,
0, 0, 3
],
// Top right:
[
8, 0, 0,
1, 7, 0,
0, 0, 0
]
],
[
// Middle left:
[
9, 0, 4,
7, 0, 0,
1, 0, 3
],
// Center:
[
0, 5, 0,
0, 0, 0,
0, 7, 0
],
// Middle right:
[
0, 0, 0,
6, 4, 0,
0, 0, 0
]
],
[
// Bottom left:
[
0, 0, 7,
6, 3, 0,
0, 0, 0
],
// Bottom middle:
[
0, 0, 5,
0, 0, 0,
9, 1, 0
],
// Bottom right:
[
0, 0, 0,
5, 2, 0,
7, 0, 0
]
]
]
Keluaran:
[
[
// Top left:
[
[5], [1, 5, 6, 9], [1, 5, 6, 9],
[], [], [5, 6, 8, 9],
[5, 8], [1, 5, 6, 7, 8, 9], []
],
// Top middle:
[
[], [], [1, 2, 6, 9],
[2, 5, 6, 8], [2, 6, 8, 9], [2, 6, 8, 9],
[1, 5, 6, 8], [6, 8, 9], []
],
// Top right:
[
[], [3, 5, 6, 9], [2, 3, 5, 6, 9],
[], [], [2, 5, 6, 9],
[4, 9], [5, 6, 9], [4, 5, 6, 9]
]
],
[
// Middle left:
[
[], [2, 6, 8], [],
[], [2, 5, 8], [5, 8],
[], [2, 5, 6, 8], []
],
// Center:
[
[1, 2, 3, 6, 8], [], [1, 2, 6, 8],
[1, 2, 3, 8], [2, 3, 8, 9], [1, 2, 8, 9],
[2, 4, 6, 8], [], [2, 4, 6, 8, 9]
],
// Middle right:
[
[2, 3], [1, 3, 8], [1, 2, 3, 7, 8],
[], [], [1, 2, 3, 5, 8, 9],
[2, 9], [5, 8, 9], [2, 5, 8, 9]
]
],
[
// Bottom left:
[
[2, 4, 8], [1, 2, 8, 9], [],
[], [], [1, 8, 9],
[2, 4, 5, 8], [2, 5, 8], [5, 8]
],
// Bottom middle:
[
[2, 3, 4, 6, 8], [2, 3, 6, 8], [],
[4, 8], [8], [4, 7, 8],
[], [], [2, 4, 6, 8]
],
// Bottom right:
[
[3, 4, 9], [1, 3, 6, 8, 9], [1, 3, 4, 6, 8, 9],
[], [], [1, 4, 8, 9],
[], [3, 6, 8], [3, 4, 6, 8]
]
]
]
Visualisasi keluaran; angka kecil:
Aturan
- Ini adalah kode-golf . Jawaban terpendek dalam byte (atau setara) menang.
- Input bisa dalam format array atau string.
- Input harus dalam urutan yang disajikan di atas (kiri atas, atas tengah, kanan atas, dll ...)
- Output dapat dalam format array atau string, selama output secara logis dapat mewakili hasil yang diharapkan.
- Output harus dalam urutan yang sama dengan input (kiri atas, atas tengah, kanan atas, dll ...)
- Output tidak perlu dipanen.
- Kode harus berlaku untuk semua kisi Sudoku yang tidak lengkap dan valid.
- Aturan main golf standar berlaku.
Catatan tambahan:
Anda mendapatkan poin internet palsu tambahan jika program atau fungsi Anda menggunakan hasil untuk memecahkan teka-teki Sudoku ke titik di mana nilai sel tidak lagi dapat dipecahkan secara logis. Misalnya, sel pertama dalam kasus uji hanya mungkin berisi angka 5, jadi harus dipertimbangkan ketika mengisi nilai-nilai lainnya. Ini hanya untuk bersenang-senang dan tantangan tambahan, jika tidak jawaban terpendek akan menang terlepas dari apakah kriteria ini dipenuhi atau tidak.
code-golf
puzzle-solver
sudoku
driima
sumber
sumber
["000340002", "740000003", ...]
)Jawaban:
C (gcc), 193 byte
Mengasumsikan input dalam format berikut (sudoku yang sama seperti di atas):
Dan output dalam format berikut:
sumber
Python 2, 178 byte
Fungsi anonim yang mengambil larik int 3 dimensi dan mengembalikan larik int 4 dimensi.
sumber
JavaScript (ES6),
208196190188186 byteInput :
Array 9 string (satu per kotak, dari kiri atas ke kanan bawah).
Output :
Array 9 array, di mana setiap item terdiri dari nomor asli di posisi ini atau array karakter yang mewakili kemungkinan digit.
Diformat dan dikomentari
Demo
sumber
Haskell, 135 byte
Menentukan fungsi
f
dari daftar 81Int
s ke daftar daftarInt
s;IO seperti jawaban orlp , kecuali ia menggunakan
[0,1,2,3,4,5,6,7,8,9]
alih-alih".123456789"
.dianne menyimpan beberapa byte.
sumber
JavaScript (ES6), 185 byte
Dibawa sebagai input array tiga baris array tiga kolom dari array sel tiga oleh tiga bilangan bulat, dan mengembalikan array lima dimensi di mana semua bilangan bulat telah diganti oleh array.
sumber