(Inspiré au hasard par https://codegolf.meta.stackexchange.com/a/17272/42963 )
Étant donné une matrice rectangulaire de chiffres (c.-à-d. 0 - 9), Sortez les "morceaux" de la matrice comme si les chiffres étaient reliés entre eux pour former une seule pièce, dans l'ordre croissant par les chiffres. Les pièces sont garanties de se connecter uniquement orthongonalement - aucune pièce ne se connectera en diagonale. Il n'y aura jamais qu'un maximum de 10 pièces (c'est-à-dire qu'une 3pièce n'apparaîtra pas deux fois dans la même matrice).
Par exemple, étant donné la matrice
0 1 1 1
0 0 1 2
3 3 2 2
voici les pièces et un exemple de sortie:
0
0 0
1 1 1
1
2
2 2
3 3
L'espacement est important pour conserver la forme des pièces, mais les pièces n'ont pas nécessairement besoin d'espacement intérieur. Les pièces elles-mêmes devraient en quelque sorte être rendues distinctes de manière cohérente (par exemple, une nouvelle ligne entre les pièces, en s'assurant que chacune est un caractère différent, etc.). En outre, les espaces blancs superflus (par exemple, les retours à la ligne de fin ou les colonnes de début) ne sont pas autorisés. Par exemple, les éléments suivants seraient également valides:
0
00
111
1
2
22
33
ou
#
##
###
#
#
##
##
Mais ce ne serait pas le cas (notez les espaces derrière les 0s):
0
0 0
Les rotations ou réflexions ne sont pas non plus autorisées. Par exemple, la sortie
1
111
pour la matrice ci-dessus est également invalide.
Les pièces de la matrice peuvent avoir des trous ou être un seul élément:
0 0 0 1
0 2 0 1
0 0 0 3
Ou, la pièce peut être la matrice entière:
0 0 0
0 0 0
Voici un cas de test plus grand et plus compliqué:
1 1 1 1 1 2 2
3 4 4 4 2 2 2
5 5 4 4 2 0 0
5 6 6 6 6 7 7
5 6 8 8 6 6 7
9 6 6 6 7 7 7
Et un exemple de sortie:
00
11111
22
222
2
3
444
44
55
5
5
6666
6 66
666
77
7
777
88
9
Règles et E / S
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Vous pouvez l'imprimer sur STDOUT ou le renvoyer en tant que résultat de fonction.
- Un programme complet ou une fonction sont acceptables.
- Un espace de tête pour conserver la forme (par exemple, la forme en "T" de
1dans l'exemple) est requis, un espace cohérent pour rendre les pièces distinctes, et une seule nouvelle ligne de fin à la fin n'est autorisée, mais aucun autre espace n'est autorisé. - Vous pouvez supposer en toute sécurité que les pièces sont numérotées
0de manièreNcontiguë, ce qui signifie que (par exemple)3ne serait pas ignoré dans une matrice à six pièces. - Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
0comme valeur de remplissage? Ainsi, chaque morceau serait sorti avec le reste des valeurs dans la matrice définie sur0
-1ou une autre valeur au lieu de rien / espace ne serait cependant pas OK.
' ') devrait-il être utilisé dans ce cas?
-1ou un espace représentant un espace vide, ou absence d'élément si possible)?