Sebagai bagian dari algoritma kompresinya, standar JPEG membuka gulungan sebuah matriks ke dalam vektor di sepanjang antidiagonals dari arah yang bergantian:
Tugas Anda adalah mengambil matriks (belum tentu kuadrat) dan mengembalikannya dalam bentuk yang tidak terbuka. Sebagai contoh:
[1 2 3 4
5 6 7 8
9 1 2 3]
harus menghasilkan
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3]
Aturan
Anda dapat mengasumsikan bahwa elemen matriks bilangan bulat positif kurang dari 10
.
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Matriks input dapat diberikan dalam format string atau string yang nyaman, tidak ambigu, bersarang, atau sebagai daftar datar bersama dengan kedua dimensi matriks. (Atau, tentu saja, sebagai jenis matriks jika bahasa Anda memilikinya.)
Vektor output mungkin dalam format string atau daftar yang mudah, tidak ambigu, datar.
Aturan standar kode-golf berlaku.
Uji Kasus
[[1]] => [1]
[[1 2] [3 1]] => [1 2 3 1]
[[1 2 3 1]] => [1 2 3 1]
[[1 2 3] [5 6 4] [9 7 8] [1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 3 4] [5 6 7 8] [9 1 2 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 6 3 1 2] [5 9 4 7 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1 2 5 9 6 3 4 7 1 2 8 3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
[[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]] => [1 2 5 9 6 3 4 7 1 2 8 3]
Tantangan Terkait
- Rekonstruksi matriks zig-zagifikasi (transformasi terbalik yang agak rumit)
- Putar anti-diagonal