Diberikan daftar nonempty dari baris nonempty angka, hitung jumlah bijak kolom , yang merupakan daftar lain yang memiliki panjang baris input terpanjang. Entri pertama dari daftar keluaran adalah jumlah dari semua entires pertama dari baris input, yang kedua adalah jumlah dari semua elemen kedua (jika tersedia) dll. Saya pikir contoh berikut akan menjelaskannya dengan lebih baik:
Input: {[1,2,3,4],[1],[5,2,3],[6,1]}
Computation: [1,2,3,4]
+ . . .
[1]. . .
+ + + .
[5,2,3].
+ + . .
[6,1]. .
= = = =
Output: [13,5,6,4]
Uji Kasus
{[0]} -> 0
{[1],[1,1,1,1]} -> [2,1,1,1]
{[1],[1,2],[1,2,3],[1,2,3,4]} -> [4,6,6,4]
{[1,6,2,-6],[-1,2,3,5]} -> [0,8,5,-1]
Jawaban:
Jelly , 1 byte
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
Atom penjumlahan
S
adalah singkatan untuk+/
, yang melakukan reduksi dengan penambahan.Cepat
/
berkurang sepanjang dimensi terluar, sehingga ia memanggil tautannya untuk elemen-elemen input. Di sini, elemen-elemennya adalah baris.Atom tambahan ini melakukan
+
vektorisasi, jadi menambahkan dua baris vektor melakukan penambahan elemen demi elemen. Ketika argumen memiliki panjang yang berbeda, elemen argumen yang lebih panjang yang tidak memiliki padanan dalam yang lebih pendek dibiarkan tidak berubah.Semua dalam semua, dengan matriks tidak teratur sebagai argumen,
S
menghitung jumlah kolom-bijaksana, melewatkan entri yang hilang di baris yang lebih pendek.sumber
S€
, maka?/
tidak membuat vektor; itu hanya berlaku angka dua yang sesuai untuk semua elemen argumennya.Python 2 ,
4745 byteTerima kasih kepada @vaultah karena bermain golf 2 byte!
Cobalah online!
sumber
Perl 6 , 23 byte
sumber
Mathematica, 15 byte
sumber
Haskell, 34 byte
Cobalah online! Pemakaian:
sumber
import
karena sudah memakan banyak byte: DCJam ,
75 byte2 byte off berkat Dennis!
Ini mendefinisikan blok anonim yang mengambil daftar daftar, seperti
[[1 2 3 4] [1] [5 2 3] [6 1]]
, dan menggantinya dengan daftar[13 5 6 4]
,.Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
sumber
MATL , 3 byte
( MATL tidak tahu bahwa bentuk jamak dari "sapi" adalah "sapi" ... )
Input adalah array sel vektor baris numerik, dalam format yang sama seperti pada teks tantangan:
Cobalah online! Atau verifikasi semua kasus uji .
sumber
JavaScript (ES6),
5148 byteDisimpan 3 byte, berkat produk ETH
Uji kasus
Tampilkan cuplikan kode
sumber
reduce
?a=>a.reduce((l,r)=>r.map((e,i)=>e+(l[i]||0)))
hanya 45 byte.Bertanya-tanya , 11 byte
Transpose dan petakan dengan fungsi penjumlahan. Pemakaian:
sumber
C ++ 14, 130 byte
Sebagai lambda generik yang tidak disebutkan namanya:
Harus
C
sepertivector<vector<int>>
dan mengembalikan nilair
sepertivector<int>
(harus baik-baik saja sesuai dengan meta ).Tidak digabungkan & penggunaan:
sumber
Pyth - 4 byte
Cobalah online di sini .
sumber
Haskell,
61 4140 byteTerima kasih @Laikoni untuk -20 byte, @nimi untuk -1 byte!
Penjelasan: Ini hanya penjumlahan rekursif dari elemen pertama dari daftar, juga berurusan dengan membuang daftar kosong di setiap langkah perantara:
sumber
(sum$sum.(take 1)<$>l)
dengansum[h|h:_<-l]
dan(f$filter(/=[])$drop 1<$>l)
denganf[t|_:t<-l,t>[]]
.[h|h:_<-l]
!f[t:u|_:t:u<-l]
.J, 5 byte
Mengambil input sebagai daftar daftar kotak.
Uji kasus
sumber
Dyalog APL , 3 byte
+⌿
jumlah kolom-bijaksana↑
argumen campuran (daftar daftar, ditumpuk ke dalam matriks, padding dengan nol)TryAPL online!
sumber
Pyke, 4 byte
Coba di sini!
sumber
Java 8, 124 byte
ini adalah ungkapan lambda untuk a
Function< int[ ][ ], int[ ] >
dibutuhkan panjang array terbesar dari input, membuat array baru dengan ukuran itu, dan kemudian menulis jumlah masing-masing kolom ke array.
sumber
Oktaf, 69 byte
sumber
R,
10597 byteIni membutuhkan input
list
objek yang disebutw
dalam bentuk:Ini menghasilkan jumlah kolom-bijaksana:
[1] 3 4 3 4
Solusi ini cukup panjang untuk saya. R memiliki kekhasan untuk didaur ulang ketika Anda mencoba mengikat vektor dengan panjang yang berbeda. Sebagai contoh :
b
digunakan kembali sekali agar pas, itulah sebabnya saya mulai dengan daftar.Program menyesuaikan panjang semua elemen daftar sebagai yang terpanjang, mengikat elemen-elemen dan menghitung jumlah kolom-bijaksana. Penyesuaian panjang menghasilkan
NA
, yang diabaikan olehsum
.-8 byte terima kasih kepada @Jarko Dubbeldam!
sumber
colSums(a,na.rm=T)
menghemat beberapa byte.na.rm=T
menjadin=T
.PHP, 63 byte
panggilan di browser dengan parameter GET sebagai daftar input.
Contoh:
script.php?a[]=1&a[]=2&a[]=3&a[]=4&b[]=1&c[]=5&c[]=2&c[]=3&d[]=6&d[]=1
(Nama array diabaikan, sehingga Anda dapat menamainya sesuka Anda.)
Coba fungsi ini untuk pengujian:
atau gunakan
http_build_query($array,a)
untuk mengonversi array array yang diberikan ke parameter GET.sumber
Clojure, 70 byte
Loop bersarang dasar.
sumber
Japt, 5 byte
Uji secara online!
U
adalah array input, danz
pada array memutar array searah jarum jam sebesar 90 derajat. Karena itu,menjadi
(Spasi ditambahkan hanya untuk tujuan tampilan.)
mx
kemudianm
aps oleh penjumlahan (x
), yang memberikan hasil yang diinginkan:[13,5,6,4]
.sumber