(ランダムにhttps://codegolf.meta.stackexchange.com/a/17272/42963からインスピレーションを得た)
数字の長方形マトリックス(つまり、0 - 9)が与えられた場合、数字の昇順で、数字が1つに接続されているかのように、マトリックスの「ピース」を出力します。ピースは、直角にのみ接続することが保証されています-ピースは斜めに接続しません。最大10個のピースしかあり3ません(つまり、ピースは同じマトリックスに2回表示されません)。
たとえば、行列
0 1 1 1
0 0 1 2
3 3 2 2
以下は、断片と出力例です。
0
0 0
1 1 1
1
2
2 2
3 3
ピースの形状を維持するには間隔が重要ですが、ピースは必ずしも内部の間隔を必要としません。ピース自体は一貫した方法で何らかの方法で区別する必要があります(たとえば、ピース間の改行、それぞれが異なる文字であることを確認するなど)。さらに、無関係な空白(たとえば、末尾の改行や先頭の列)は許可されません。たとえば、以下も有効です。
0
00
111
1
2
22
33
または
#
##
###
#
#
##
##
しかし、以下はありません(0sの後ろのスペースに注意してください)。
0
0 0
回転または反射も許可されていません。たとえば、出力
1
111
上記のマトリックスも無効です。
マトリックスのピースには穴がある場合と、単一の要素のみの場合があります。
0 0 0 1
0 2 0 1
0 0 0 3
または、ピースがマトリックス全体である場合もあります。
0 0 0
0 0 0
次に、より大きく、より複雑なテストケースを示します。
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
そして、出力例:
00
11111
22
222
2
3
444
44
55
5
5
6666
6 66
666
77
7
777
88
9
ルールとI / O
- 入力と出力は、任意の便利な方法で指定できます。
- これをSTDOUTに出力するか、関数の結果として返すことができます。
- 完全なプログラムまたは関数のいずれかを使用できます。
- 形状を維持するための先頭の空白(例ではの「T」形
1)が必要であり、ピースを区別するために一貫した空白が必要です。最後に単一の末尾の改行が許可されますが、他の空白は許可されません。 - ピースは連続して番号が付けられ
0ていると安全に想定できますN。つまり、(たとえば)36ピースのマトリックスではスキップされません。 - 標準の抜け穴は禁止されています。
- これはコードゴルフなので、すべての通常のゴルフ規則が適用され、最短のコード(バイト単位)が優先されます。
0フィラー値として使用されている場合は許容されますか?したがって、各ピースは、マトリックスの残りの値を設定して出力されます0
-1ただし、何もない/空白の代わりに、またはその他の値を持つ各部分の行列全体を出力することはできません。
' ')を使用する必要がありますか?
-1空のスペースを表す、またはスペース、または可能な場合は要素がない)で行われますか?