pengantar
Ini adalah log dengan panjang 5:
#####
Saya ingin menumpuk banyak log ini di atas satu sama lain. Cara saya melakukan ini adalah saya menggeser log baru ke atas dari kanan, dan berhenti meluncur ketika ujung kiri atau kanannya sejajar (jangan tanya kenapa). Jika log baru lebih panjang, ia meluncur ke ujung kiri dari log paling atas:
######## <-
#####
Jika lebih pendek, hanya meluncur sampai ujung kanannya rata:
###### <-
########
#####
Saat saya memasukkan lebih banyak log ke tumpukan, posisi mereka ditentukan oleh log teratas saat ini:
##
######
###
####
##
######
########
#####
Ini terlihat mustahil secara fisik, tetapi mari kita anggap itu berhasil.
Tugas
Input Anda harus berupa daftar bilangan bulat positif yang tidak kosong, yang mewakili panjang log saya. Angka paling kiri adalah log pertama yang saya masukkan ke tumpukan, sehingga berakhir di bagian bawah. Pada contoh di atas, inputnya adalah [5,8,6,2,4,3,6,2]
. Output Anda akan, untuk setiap kolom tumpukan yang dihasilkan, jumlah log yang melintasi kolom itu. Pada contoh di atas, output yang benar adalah [2,2,3,3,3,2,4,6,3,3,1,2,2]
.
Aturan dan penilaian
Input dan output dapat dalam format apa pun yang masuk akal. Output hanya dapat berisi bilangan bulat positif, artinya tidak boleh memiliki leading atau trailing 0
s. Aturan kode-golf normal berlaku: Anda dapat menulis program atau fungsi lengkap, jumlah byte terendah menang, dan celah standar dilarang.
Uji kasus
[1] -> [1]
[4] -> [1,1,1,1]
[3,2] -> [1,2,2]
[2,3] -> [2,2,1]
[2,2,2] -> [3,3]
[2,3,2] -> [2,3,2]
[3,2,3] -> [1,3,3,1]
[1,3,2,2,1,3,1] -> [2,3,5,1,2]
[4,3,4,2,4,3,4,2] -> [1,3,3,5,5,3,4,2]
[5,8,6,2,4,3,6,2] -> [2,2,3,3,3,2,4,6,3,3,1,2,2]
[5,10,15,1,1,1,1,1,2] -> [3,3,3,3,3,2,2,2,2,2,1,1,1,1,7,1]
[13,12,2,10,14,12] -> [1,2,2,2,2,2,2,2,2,2,2,5,5,3,3,3,3,3,3,3,3,2,2,2,2]
[12,14,3,6,13,1,1] -> [2,2,2,2,2,2,2,2,2,2,2,5,4,4,2,2,2,1,1,1,1,1,1,3]
[7,5,12,5,1,10,14,5] -> [1,1,3,3,3,3,3,1,1,2,2,2,2,5,2,2,2,2,2,2,2,2,3,2,2,2,2]
[14,5,1,3,12,6,2,2,1,7,9,15] -> [1,1,1,1,1,1,1,1,1,2,2,2,2,5,2,2,1,1,1,2,2,2,2,4,8,3,3,3,3,3,3,2,2,1,1,1,1,1,1]
Jawaban:
Jelly ,
1816 byte-2 byte diminta oleh bantuan dari mil
Mungkin ada cara yang lebih cepat menggunakan matematika daripada konstruksi seperti ini?
Cobalah online! atau lihat test-suite .
Bagaimana?
sumber
IN»0+\0;;"x@€0,1S
Jelly ,
1913 byteCobalah online!
Disimpan 2 byte berkat @Jonathan Allan.
Penjelasan
sumber
Python 3 ,
114109 byteSunting: Disimpan 5 byte berkat @ Mr.Xcoder
Cobalah online!
sumber
Sekam , 16 byte
Cobalah online!
Penjelasan
sumber
Perl 5 , 64 + 1 (
-a
) = 65 byteCobalah online!
sumber
Mathematica,
76605857 byteCobalah di Wolfram Sandbox
sumber
Kotlin 1.1,
113103 byteYg diperindahkan
Uji
sumber