정수 M 과 다른 양 의 정수의 제곱 행렬이 주어집니다. N 의 크기보다 확실히 작은 M을 . 당신의 임무는 크기가 n 인 M 의 모든 제곱 하위 행렬을 생성하는 것 입니다.
이 과제를 위해, 정사각형 하위 행렬 은 M에 포함 된 인접한 행과 열의 그룹입니다 .
입력 / 출력 형식
당신은 다른 합리적인 형식을 자유롭게 선택할 수 있습니다. 이것들은 단지 예일뿐입니다.
입력
- 기본 매트릭스 유형의 매트릭스 (언어가있는 경우)
- 2D 배열 (1D 배열의 배열, 각각 하나의 행 / 하나의 열에 해당)
- 1D 배열 (매트릭스는 항상 정사각형이므로)
- 문자열 (간격을 선택했지만 어떤 식 으로든 남용하지 마십시오) 등
산출
- 행렬의 행렬.
- 4D 배열. 여기서 각 요소 (3D 목록)는 행 / 열의 하위 행렬을 나타냅니다.
- 3D 배열. 각 요소 (2D 목록)는 하위 행렬을 나타냅니다.
- 결과 하위 행렬 등의 문자열 표현
명세서
- 당신은 걸릴하도록 선택할 수 있습니다 크기 의 M을 너무 입력으로. 2 이상이어야 합니다.
- 출력 방향은 임의적입니다. 하위 행렬을 열 목록 또는 행 목록으로 출력하도록 선택할 수 있지만 선택은 일관성이 있어야합니다.
- 모든 프로그래밍 언어로 경쟁 할 수 있으며 표준 방법을 통해 입력을 받고 출력을 제공 할 수 있지만 이러한 허점 은 기본적으로 금지되어 있습니다.
- 이것은 code-golf 이므로 모든 언어에 대한 가장 짧은 제출 (바이트)이 이깁니다.
예
주어진 n = 3 및 M :
12 34 5 6 7 8 9 10 11 12 13 14 15 16
가능한 3x3 하위 행렬은 다음과 같습니다.
+ ------- + + -------- + 1 2 3 4 1 2 3 4 | 12 3 | 4 1 | 2 3 4 | + -------- + + -------- + | 5 6 7 | 8 5 | 6 7 8 | | 5 6 7 | 8 5 | 6 7 8 | | 9 10 11 | 12 9 | 10 11 12 | | 9 10 11 | 12 9 | 10 11 12 | + ------- + + -------- + | 13 14 15 | 16 13 | 14 15 16 | 13 14 15 16 13 14 15 16 + -------- + + -------- +
결과는 다음과 같습니다.
[[[1, 2, 3], [5, 6, 7], [9, 10, 11]], [[2, 3, 4], [6, 7, 8], [10, 11, 12]], [[5, 6, 7], [9, 10, 11], [13, 14, 15]], [[6, 7, 8], [10, 11, 12], [14, 15, 16]]]
위에서 언급 한 바와 같이
[[[1, 5, 9], [2, 6, 10], [3, 7, 11]], [[2, 6, 10], [3, 7, 11], [4, 8, 12]], [[5, 9, 13], [6, 10, 14], [7, 11, 15]], [[6, 10, 14], [7, 11, 15], [8, 12, 16]]]
대신 하위 행렬을 행 목록으로 반환하도록 선택한 경우에도 허용됩니다.
테스트 사례
입력 M, n :
[[1,2,3],[5,6,7],[9,10,11]], 1
[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]], 3
[[100,-3,4,6],[12,11,14,8],[0,0,9,3],[34,289,-18,3]], 2
[[100,-3,4,6],[12,11,14,8],[9,10,11,12],[13,14,15,16]], 3
그리고 해당 출력 (행 목록으로 제공된 하위 행렬) :
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,2,3],[5,6,7],[9,10,11]],[[2,3,4],[6,7,8],[10,11,12]],[[5,6,7],[9,10,11],[13,14,15]],[[6,7,8],[10,11,12],[14,15,16]]]
[[[100,-3],[12,11]],[[-3,4],[11,14]],[[4,6],[14,8]],[[12,11],[0,0]],[[11,14],[0,9]],[[14,8],[9,3]],[[0,0],[34,289]],[[0,9],[289,-18]],[[9,3],[-18,3]]]
[[[100,-3,4],[12,11,14],[9,10,11]],[[-3,4,6],[11,14,8],[10,11,12]],[[12,11,14],[9,10,11],[13,14,15]],[[11,14,8],[10,11,12],[14,15,16]]]
또는 열 목록으로 :
[[[1]],[[2]],[[3]],[[5]],[[6]],[[7]],[[9]],[[10]],[[11]]]
[[[1,5,9],[2,6,10],[3,7,11]],[[2,6,10],[3,7,11],[4,8,12]],[[5,9,13],[6,10,14],[7,11,15]],[[6,10,14],[7,11,15],[8,12,16]]]
[[[100,12],[-3,11]],[[-3,11],[4,14]],[[4,14],[6,8]],[[12,0],[11,0]],[[11,0],[14,9]],[[14,9],[8,3]],[[0,34],[0,289]],[[0,289],[9,-18]],[[9,-18],[3,3]]]
[[[100,12,9],[-3,11,10],[4,14,11]],[[-3,11,10],[4,14,11],[6,8,12]],[[12,9,13],[11,10,14],[14,11,15]],[[11,10,14],[14,11,15],[8,12,16]]]]