(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 3
piè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 0
s):
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
1
dans 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
0
de manièreN
contiguë, ce qui signifie que (par exemple)3
ne 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.
0
comme valeur de remplissage? Ainsi, chaque morceau serait sorti avec le reste des valeurs dans la matrice définie sur0
-1
ou une autre valeur au lieu de rien / espace ne serait cependant pas OK.
' '
) devrait-il être utilisé dans ce cas?
-1
ou un espace représentant un espace vide, ou absence d'élément si possible)?