Permet de définir une matrice non vide, non triée et finie avec des nombres uniques comme suit:
Permet de définir 4 mouvements de matrice comme:
- ↑ * (haut): déplace une colonne vers le haut
- ↓ * (bas): déplace une colonne vers le bas
- → * (droite): Déplace une ligne vers la droite
- ← * (gauche): Déplace une ligne vers la gauche
L'astérisque (*) représente la colonne / ligne affectée par le déplacement (elle peut être indexée 0 ou indexée. À vous de choisir. Veuillez indiquer laquelle dans votre réponse).
Le défi est, en utilisant les mouvements ci-dessus, de trier la matrice dans un ordre ascendant (le coin supérieur gauche étant le plus bas et le coin inférieur droit le plus élevé).
Exemple
↑0
↓0
→0
↑0↑1←1↑2
↑0↑2→0→2↑0→2↑1↑2←1
↑2↑1←3→0←3↓0←0←2→3↑3↑4
Remarques
- Il peut y avoir différentes sorties correctes (il n'est pas nécessaire qu'elles soient nécessairement les mêmes que les cas de test ou les plus courts)
- Vous pouvez supposer que ce sera toujours un moyen de commander la matrice
- Les bords se connectent (comme pacman: v)
- Il n'y aura pas de matrice avec plus de 9 colonnes ou / et lignes
- Supposons que la matrice ne contient que des entiers uniques positifs non nuls
- Vous pouvez utiliser 4 valeurs distinctes autres que des nombres pour représenter les mouvements (dans ce cas, veuillez l'indiquer dans votre réponse)
- La colonne / ligne peut être indexée 0 ou 1
- Critères gagnants code-golf
Les cas de test supplémentaires sont toujours les bienvenus
←0←0
une solution valide pour le deuxième exemple où vous avez donné une solution en tant que →0
. Si c'est le cas, je pense que la moitié des options de déplacement ne seront probablement pas utilisées.