Disons que j'ai la matrice (2D) suivante:
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Faites pivoter la matrice dans le sens antihoraire R
(pas par incréments de 90 degrés, juste d'un chiffre à chaque fois),
1 2 3 4 2 3 4 8 3 4 8 12
5 6 7 8 --> 1 7 11 12 --> 2 11 10 16
9 10 11 12 5 6 10 16 1 7 6 15
13 14 15 16 9 13 14 15 5 9 13 14
Exemple complété:
Contribution:
2
[[1, 2, 3, 4 ],
[5, 6, 7, 8 ],
[9, 10, 11, 12],
[13, 14, 15, 16]]
Sortie:
[[3, 4, 8, 12],
[2, 11, 10, 16],
[1, 7, 6, 15],
[5, 9, 13, 14]]
(les espaces étranges sont pour aligner les nombres dans de belles colonnes)
L '«anneau» extérieur de la matrice tourne de 2 dans le sens antihoraire, et l'intérieur de droite tourne également de 2. Dans cette matrice, il n'y a que deux anneaux.
Un exemple avec 1 "anneau":
2
[[1, 2],
[3, 4],
[5, 6]]
Devrait produire:
[[4, 6],
[2, 5],
[1, 3]]
Votre défi est de prendre une matrice et un entier R
, et de sortir la version traduite après les R
rotations.
La rotation d'une matrice 4x5 est représentée par la figure suivante:
Contraintes:
2 ≤ M, N ≤ 100
, où M et N sont les dimensions de la matrice. Il est garanti que le minimum de M et N sera pair.1 ≤ R ≤ 80
, où r est le nombre de rotations.- La matrice ne contiendra que des nombres entiers positifs.
- Les valeurs ne sont pas toujours distinctes.
- L'entrée doit toujours être sous forme de tableau 2D (si vous ne pouvez pas prendre l'entrée d'exécution en tant que tableau 2D, il vous suffit de trouver un autre moyen d'obtenir l'entrée).
Un autre cas de test, avec des valeurs non distinctes:
1
[[1, 1],
[2, 2],
[3, 3]]
Les sorties:
[[1, 2],
[1, 3],
[2, 3]]
Il s'agit de code-golf , donc la réponse la plus courte l'emporte!
[[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 16], [5, 9, 13, 14]]
le 16 est soudainement dupliqué je suppose que ça devrait être [[3, 4, 8, 12], [2, 11, 10, 16], [1, 7, 6, 15], [5, 9, 13, 14]]
:?