( https://codegolf.meta.stackexchange.com/a/17272/42963에서 무작위로 영감을 얻음 )
숫자의 직사각형 행렬 (즉, 0 - 9
)이 주어진 경우, 숫자가 단일 조각을 구성하는 것처럼 숫자의 오름차순으로 행렬의 "조각"을 출력합니다. 조각은 직교로만 연결되도록 보장되며 조각은 대각선으로 연결되지 않습니다. 최대 10 개의 조각 만있을 수 있습니다 (즉, 3
조각이 같은 행렬에 두 번 표시되지 않음).
예를 들어, 주어진 매트릭스
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
또는
#
##
###
#
#
##
##
그러나 다음과 같지 않습니다 ( 0
s 뒤에 후행 공백에 유의하십시오 ).
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
(예를 들어) 즉, 인접3
여섯 조각 매트릭스에 건너 뛸 수 없다. - 표준 허점 은 금지되어 있습니다.
- 이것은 코드 골프 이므로 모든 일반적인 골프 규칙이 적용되며 가장 짧은 코드 (바이트)가 이깁니다.
0
이 필러 값으로 사용되는 경우 허용 됩니까? 각 조각으로 설정 행렬의 값의 나머지 부분과 출력 될 것이다 그래서0
-1
그러나 아무것도 / 공백 대신 다른 값을 사용하거나 각 조각에 대한 전체 행렬을 출력하는 것은 좋지 않습니다.
' '
)을 사용해야합니까?
-1
빈 공간을 나타내는 공백이 있거나 가능한 경우 요소가 없음)?