Como parte de su algoritmo de compresión, el estándar JPEG desenrolla una matriz en un vector a lo largo de antidiagonales de dirección alterna:
Su tarea es tomar el vector desenrollado junto con las dimensiones de la matriz y reconstruir la matriz correspondiente. Como ejemplo:
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3
debería rendir
[1 2 3 4
5 6 7 8
9 1 2 3]
mientras que las dimensiones 6, 2
darían
[1 2 6 3 1 2
5 9 4 7 8 3]
Reglas
Puede elegir tomar solo una de las dimensiones como entrada. Las entradas individuales se pueden tomar en cualquier orden. Puede suponer que el ancho y la altura son positivos y válidos para la longitud del vector dado.
Puede suponer que los elementos del vector son enteros positivos menores que 10
.
Puede escribir un programa o función, tomando la entrada a través de STDIN (o la alternativa más cercana), argumento de línea de comando o argumento de función y generando el resultado a través de STDOUT (o la alternativa más cercana), el valor de retorno de la función o el parámetro de función (out).
El vector de entrada se puede dar en cualquier formato conveniente, sin ambigüedades, de lista plana o de cadena.
La matriz de salida puede estar en cualquier lista conveniente o inequívoca, anidada o formato de cadena, o como una lista plana junto con ambas dimensiones de la matriz. (O, por supuesto, como un tipo de matriz si su idioma los tiene).
Aplican reglas estándar de código de golf .
Casos de prueba
Cada caso de prueba es de la forma 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]]
Desafíos relacionados
- Zigzagificar una matriz (la transformación inversa algo más simple)
- Rotar las antiagoniales