Vamos definir uma matriz não-vazia, não classificada e finita, com números exclusivos, como segue:
Vamos definir 4 movimentos de matriz como:
- ↑ * (para cima): move uma coluna para cima
- ↓ * (para baixo): move uma coluna para baixo
- → * (direita): move uma linha para a direita
- ← * (esquerda): move uma linha para a esquerda
O asterisco (*) representa a coluna / linha afetada pela movimentação (pode ser indexada em 0 ou indexada em 1. Depende de você. Indique qual em sua resposta).
O desafio é, usando os movimentos acima, classificar a matriz em uma ordem ascendente (sendo o canto superior esquerdo o mais baixo e o canto inferior direito o mais alto).
Exemplo
Entrada:
Saída possível: ou . (Observe que qualquer um desses movimentos pode classificar a matriz para que ambas as respostas estejam corretas)↑0
↓0
Entrada:
Saída possível:→0
Entrada (exemplo de caso de teste):
Saída possível:↑0↑1←1↑2
Entrada:
Saída possível:
↑0↑2→0→2↑0→2↑1↑2←1
Entrada:
Saída possível:
↑2↑1←3→0←3↓0←0←2→3↑3↑4
Entrada:
Saída:
ou qualquer movimento
Entrada:
Saída:
Notas
- Pode haver diferentes saídas corretas (não precisa ser necessariamente o mesmo que os casos de teste ou o mais curto)
- Você pode assumir que sempre será uma maneira de pedir a matriz
- As arestas se conectam (como pacman: v)
- Não haverá uma matriz com mais de 9 colunas ou / e linhas
- Suponha que a matriz contenha apenas números inteiros positivos diferentes de zero
- Você pode usar quaisquer quatro valores distintos, exceto números, para representar os movimentos (nesse caso, indique isso em sua resposta)
- A coluna / linha pode ser indexada 0 ou 1
- Critérios de vencimento code-golf
Casos de teste extras são sempre bem-vindos
←0←0
uma solução válida para o segundo exemplo em que você forneceu uma solução como →0
. Se for, acho que metade das opções de movimentação provavelmente não serão usadas.