Étant donné un tableau 2D d'entiers, trions ses lignes et colonnes en blocs. Cela signifie que vous n'avez qu'à trier une ligne ou une colonne donnée, mais en appliquant les transformations nécessaires pour le trier à toutes les autres lignes ou colonnes du tableau 2D.
Règles
- L'entrée sera un tableau 2D d'entiers et un entier indexé 1. Cet entier représentera la ligne à trier si le nombre est positif, ou la colonne à trier si le nombre est négatif (ou l'inverse vous voulez). Exemple: étant donné un
4x3
tableau (lignes x colonnes), vous pouvez trier la deuxième colonne avec un-2
argument ou la troisième ligne avec un3
argument. Ce deuxième argument ne sera jamais nul et sa valeur absolue ne sera jamais supérieure à la dimension correspondante du tableau. - La sortie sera également un tableau 2D d'entiers avec les transformations nécessaires appliquées pour trier la ligne ou la colonne donnée. Alternativement, vous pouvez simplement écrire le tableau dans STDOUT.
- Le tableau de sortie aura la ligne ou la colonne spécifiée triée par ordre croissant. Notez simplement que lorsque vous devez échanger deux numéros d'affilée, toutes les colonnes où se trouvent les numéros seront échangées. Et lorsque vous devez échanger deux nombres dans une colonne, les lignes entières où se trouvent les nombres seront échangées.
- Dans le cas où le même numéro apparaît plusieurs fois dans la ligne / colonne à trier, il y aura plusieurs solutions possibles selon la façon dont vous permutez les valeurs, faites juste en conséquence avec le reste des lignes / colonnes à permuter.
Exemples
Positive indices for rows and negative indices for columns
[5 8 7 6 [1 3 2 4
1 3 2 4 order by -3 (3rd column) --> 9 6 3 0
9 6 3 0] 5 8 7 6]
[5 8 7 6 [9 6 3 0
1 3 2 4 order by -4 (4th column) --> 1 3 2 4
9 6 3 0] 5 8 7 6]
[5 8 7 6 [5 7 8 6
1 3 2 4 order by 2 (2nd row) --> 1 2 3 4
9 6 3 0] 9 3 6 0]
[5 8 7 6 [6 7 8 5
1 3 2 4 order by 3 (3rd row) --> 4 2 3 1
9 6 3 0] 0 3 6 9]
[1 2 [1 2 [3 2
3 2] order by -2 (2nd column) --> 3 2] or 1 2] (both are valid)
[7 5 9 7 [5 7 7 9 [5 7 7 9
1 3 2 4 order by 1 (1st row) --> 3 1 4 2 or 3 4 1 2
9 6 3 0] 6 9 0 3] 6 0 9 3]
C'est le code-golf , donc le code le plus court pour chaque langue peut gagner!