El reto
Dada una n x m
matriz con n > 1
y m > 1
llena de enteros
1 2 3 4 5 6
y una lista de enteros con exactamente tantos valores como 2x2
bloques en la matriz ( (n-1)*(m-1)
si necesita el número exacto)
[1, 2]
Salida de la matriz con cada 2x2
bloque girado por el valor actual en la lista en el orden dado. El ejemplo anterior produciría
4 6 2 5 3 1
El primer bloque se gira una vez hacia la derecha y el segundo bloque se gira dos hacia la derecha.
Notas
- Un número entero positivo significa que giras a la derecha en tantos pasos.
- Un número entero negativo significa que giras a la izquierda en tantos pasos.
- Un cero significa que no giras.
- Gira los bloques en fila. Eso significa que comienzas en la primera fila y vas a la derecha. Una vez que rotó cada bloque en esa fila, pasa al siguiente. Al final, cada bloque se rotó exactamente una vez.
- Tenga en cuenta que los bloques se superponen entre sí. La primera matriz anterior tiene los bloques
[[1,2],[4,5]]
y,[[2,3],[5,6]]
por ejemplo. - Cada rotación de un bloque afecta la rotación en los bloques adyacentes. Es por eso que debe hacer las rotaciones en el patrón descrito anteriormente.
Reglas
- Puede tomar la entrada en el formato más conveniente. Por favor, especifique en su respuesta cuál usa. Sin embargo, esto no le permite leer la matriz en bloque.
- Función o programa completo permitido.
- Reglas predeterminadas para entrada / salida.
- Se aplican lagunas estándar .
- Este es el código de golf , por lo que gana el conteo de bytes más bajo. Tiebreaker es una presentación anterior.
Casos de prueba
El formato de entrada aquí es una lista de listas para la matriz y una lista normal para los valores.
[[1,2], [3,4]], [-3] -> [[4,1], [3,2]] [[1,1,1], [1,1,1]], [-333, 666] -> [[1,1,1], [1,1,1]] [[1,2,3], [4,5,6]], [1,2] -> [[4,6,2], [5,3,1]] [[1,2,3], [4,5,6], [7,8,9]], [4,0,12, -20] -> [[1,2,3], [4, 5,6], [7,8,9]] [[1,2,3,4,5], [5,4,3,2,1], [1,2,3,4,5]], [2, -3,4,1,6, 24,21, -5] -> [[4,1,5,2,4], [2,1,3,5,5], [3,2,4,3,1]]
¡Feliz codificación!
4,=
el módulo correcto (a menos que su bloque deba ejecutarse al menos una vez).