Memasukkan
Matriks biner non-kosong yang terdiri dari matriks 3x3 diletakkan berdampingan.
Tugas
Tugas Anda adalah mengidentifikasi pola dadu yang valid (seperti dijelaskan di bawah) di antara sub-matriks 3x3. Setiap pola yang valid bernilai nilai dadu yang sesuai. Pola tidak valid bernilai 0.
Keluaran
Jumlah nilai dadu yang valid.
Pola dadu
Contoh
Output yang diharapkan untuk matriks berikut adalah 14 karena berisi dadu 5 , 6 dan 3 , diikuti oleh pola yang tidak valid (dari kiri ke kanan dan dari atas ke bawah).
Aturan
- Baik lebar dan tinggi matriks dijamin kelipatan 3.
- Anda harus mengabaikan sub-matriks yang tidak selaras dengan benar pada kisi (lihat case uji ke-3). Lebih formal dan dengan asumsi 0-indexing: koordinat sel kiri atas dari masing-masing sub-matriks yang dipertimbangkan adalah dalam bentuk .
- Ini adalah kode-golf .
Uji kasus
// 0
[ [ 1,0,0 ],
[ 0,0,1 ],
[ 1,0,0 ] ]
// 2
[ [ 0,0,1 ],
[ 0,0,0 ],
[ 1,0,0 ] ]
// 0 (0 + 0)
[ [ 0,0,1,0,1,0 ],
[ 0,0,0,1,0,0 ],
[ 0,0,1,0,1,0 ] ]
// 9 (3 + 3 + 3)
[ [ 1,0,0,0,0,1,1,0,0 ],
[ 0,1,0,0,1,0,0,1,0 ],
[ 0,0,1,1,0,0,0,0,1 ] ]
// 6 (6 + 0)
[ [ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,0 ],
[ 1,0,1 ] ]
// 14 (5 + 6 + 3 + 0)
[ [ 1,0,1,1,1,1 ],
[ 0,1,0,0,0,0 ],
[ 1,0,1,1,1,1 ],
[ 1,0,0,0,0,0 ],
[ 0,1,0,0,1,0 ],
[ 0,0,1,0,1,0 ] ]
// 16 (1 + 2 + 3 + 4 + 0 + 6)
[ [ 0,0,0,1,0,0,1,0,0 ],
[ 0,1,0,0,0,0,0,1,0 ],
[ 0,0,0,0,0,1,0,0,1 ],
[ 1,0,1,1,1,1,1,0,1 ],
[ 0,0,0,1,0,1,1,0,1 ],
[ 1,0,1,1,1,1,1,0,1 ] ]
//3
dan gunakan'0'+''.join...
untuk menyimpan dua byte :)R , 134 byte
Cobalah online!
Saya perhatikan saya memiliki ide yang sama tentang @eteira
Sejarah:
171: -10 bytes berkat @JayCe!161: -3 byte terima kasih kepada @Giuseppe!158: -13 byte disimpan!145: -2 byte terima kasih kepada @Giuseppe!143: -6 byte disimpan!137: -3 bytes berkat @JayCe!sumber
dim
(2^(8:0))
yang bisa dihapus.cat
output dariintToUtf8
: save 3 bytesPerl 6 ,
113 105 9794 byteCobalah online!
Membagi matriks menjadi sub matriks 3x3, mengubah sembilan 1 dan 0 menjadi basis 2 dan kemudian mengindeksnya ke dalam daftar bilangan bulat untuk nilai.
Penjelasan:
sumber
Jelly ,
2928 byte-1 terima kasih kepada Tn. Xcoder (gunakan
Ṁ
untuk menggantiṢṪ
)Tautan monadik.
Cobalah online! Atau jalankan tes .
Bagaimana?
Misalnya ketika sub-matriks adalah:
Kemudian
ZU,Ɗ
hasilkan:... yang diratakan menjadi
[0, 0, 0, 1, 1, 1, 1, 1, 1]
, yang, mengkonversi dari biner,63
yang merupakan entri keenam dalam daftar indeks halaman kode“°€⁼-Ḍ?‘
(?
menjadi byte3F
di halaman kode Jelly )sumber
Ṁ
mungkin berfungsi sebagai gantiṢṪ
-1.M
>. <). Dapatkah sesuatu yang pintar dilakukan denganŒṪ
saya bertanya-tanya ...Japt
-x
, 36 byteSekarang semakin menarik. Saya yakin bisa bermain golf lebih
Cobalah online!
sumber
Retina 0.8.2 , 90 byte
Cobalah online! Penjelasan:
Gabungkan semua balok dan kemudian bagi menjadi 9 kolom.
Hanya menjaga dadu pola berlaku (dua pola
6
, maka salah satu pertandingan nomor dari0
ke5
, meskipun0
tentu saja tidak akan memberikan kontribusi pada hitungan di bawah.)Hitung pip pada dadu yang valid.
sumber
Ruby , 151 byte
Cobalah online!
Seorang lambda menerima array int 2d (atau string, saya kira). Mengambil inspirasi dari jawaban Jo King . Saya merasa seperti memotong dadu dari matriks input membutuhkan banyak ruang, jadi saya mungkin kalah besar. Untungnya, berurusan dengan nils hanya membuat saya kehilangan beberapa byte.
Tidak Disatukan:
sumber
Clojure, 197 byte
Saya harus datang dengan sesuatu yang lebih pintar.
sumber
Python 2 , 159 byte
Cobalah online!
Kiat tip kepada Jonathan Frech untuk pendekatan pengkodean unicode.
sumber