Sıkıştırma algoritmasının bir parçası olarak, JPEG standardı, bir matrisi, dönüşümlü yönün antidiagonalleri boyunca bir vektöre açar:
Göreviniz, açılmamış vektörü matris boyutları ile birlikte almak ve karşılık gelen matrisi yeniden yapılandırmaktır. Örnek olarak:
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3
vermeli
[1 2 3 4
5 6 7 8
9 1 2 3]
boyutları ise 6, 2
verecek
[1 2 6 3 1 2
5 9 4 7 8 3]
kurallar
Boyutlardan yalnızca birini giriş olarak almayı seçebilirsiniz. Bireysel girişler herhangi bir sırada alınabilir. Genişlik ve yüksekliğin verilen vektör uzunluğu için pozitif ve geçerli olduğunu varsayabilirsiniz.
Vektör öğelerinin pozitif tam sayılardan daha az olduğunu varsayabilirsiniz 10
.
STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alarak ve sonucu STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı alarak bir program veya işlev yazabilirsiniz.
Girdi vektörü herhangi bir uygun, açık, düz liste veya dize formatında verilebilir.
Çıkış matrisi uygun, açık, iç içe liste veya dize biçiminde veya her iki matris boyutuyla birlikte düz bir liste olabilir. (Veya, elbette, dilinizde bunlar varsa bir matris türü olarak.)
Standart kod golf kuralları geçerlidir.
Test Durumları
Her test durumu formdadır vector width height => matrix
.
[1] 1 1 => [[1]]
[1 2 3 1] 2 2 => [[1 2] [3 1]]
[1 2 3 1] 4 1 => [[1 2 3 1]]
[1 2 5 9 6 3 4 7 1 2 8 3] 3 4 => [[1 2 3] [5 6 4] [9 7 8] [1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 4 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] 6 2 => [[1 2 6 3 1 2] [5 9 4 7 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 12 1 => [[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 12 => [[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]]
İlgili Zorluklar
- Bir Matrisi Zigzagify (biraz daha basit ters dönüşüm)
- Anti-çaprazları döndürün