Anda harus menulis sebuah program atau fungsi yang menerima daftar angka sebagai input dan output atau mengembalikan jumlah terbesar yang bisa dicapai dengan meletakkan angka-angka ini dalam kotak.
Input akan selalu berisi angka kuadrat. Contoh susunan kuadrat untuk input 9 1 2 3 4 5 6 7 7
bisa
677
943
125
Jumlahnya dihitung sebagai jumlah dari semua baris dan kolom. Untuk pengaturan di atas jumlahnya akan menjadi 677 + 943 + 125 + 691 + 742 + 735 = 3913
. Perhatikan bahwa ini bukan jumlah maksimal jadi ini bukan output yang diharapkan.
Memasukkan
- Daftar dengan panjang
n^2
(n>=1
) yang mengandung digit bukan nol (1-9
).
Keluaran
- Integer, jumlah terbesar yang dapat dicapai dengan digit input yang dimasukkan ke dalam kuadrat.
Contohnya
Format contohnya adalah input => output
.
5 => 10
1 2 3 4 => 137
5 8 6 8 => 324
9 1 2 3 4 5 6 7 7 => 4588
2 4 9 7 3 4 2 1 3 => 3823
8 2 9 4 8 1 9 3 4 6 3 8 1 5 7 1 => 68423
5 4 3 6 9 2 6 8 8 1 6 8 5 2 8 4 2 4 5 7 3 7 6 6 7 => 836445
Ini adalah kode golf sehingga entri terpendek menang.
Jawaban:
Pyth, 15 byte
Demonstrasi. Uji harness.
Catatan: Input dalam format urutan python apa pun, seperti
a,b,c,
atau[a, b, c]
. Gagal aktifa
.Ini akan menjadi penjelasan untuk contoh input
5,8,6,8
.^LTUQ
: Ini adalah daftar kekuatan 10, hingga panjangQ
.[1, 10, 100, 1000]
.^ ... 2
: Lalu, kami mengambil pasangan kekuatan 10[[1, 1], [1, 10], ...
..sM
: Lalu, kami menjumlahkan pasangan itu.[2, 11, 101, ...
Setiap angka merepresentasikan nilai dari lokasi grid. Nilai sudut kanan bawah adalah 2, karena digit yang ditempatkan di tempat satu dari dua angka itu. Perhatikan bahwa 16 nilai dihasilkan, meskipun kita hanya perlu 4. Ini akan ditangani segera.S
: Urutkan nilai dalam urutan meningkat.[2, 11, 11, 20, 101, ...
. Perhatikan bahwa satu-satunya nilai yang relevan untuk input ini adalah 4 pertama, karena kuadrat ini tidak akan memiliki ratusan atau ribuan tempat.SQ
: Urutkan input dalam urutan menaik.[5, 6, 8, 8]
*V
: Penggandaan vektor dari dua daftar. Perkalian vektor Pyth memotong input yang lebih panjang, jadi ini berkinerja[5*2, 6*11, 8*11, 8*20]
, setara dengan mengisi grid, terkecil ke terbesar, kanan bawah ke kiri atas.s
: Jumlahkan hasilnya324
,. Pencetakan tersirat.sumber
CJam, 23 byte
Cobalah online . Menghasilkan bobot untuk setiap sel dan menetapkan digit tertinggi ke bobot tertinggi.
Alternatif 23:
sumber
CJam, 25 byte
Pendekatan yang cukup lurus ke depan. Hasilkan semua kombinasi, dapatkan jumlah, cetak terbesar.
Cobalah online di sini
sumber