학습
시험

서브블록 합의 최대와 최소 2

난이도
BEGINNER

문제 설명

정수로 이루어진 n×mn×m 크기의 이차원 배열이 주어집니다. 이 배열에서 모든 3×33×3 크기의 정사각형 부분 배열에서 가운데 원소를 제외한 8개 원소의 합을 구한 뒤, 최댓값과 최솟값을 [최댓값, 최솟값] 형태로 반환하고자 합니다.

예를 들어 입력 배열이 다음과 같을 때:

[
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12],
 [13, 14, 15, 16]
]

가능한 서브 블록 중 합이 가장 작은 경우와 가장 큰 경우는 아래와 같으며 [88, 48]을 반환해야 합니다.

[
 [1, 2, 3],
 [5, ., 7],
 [9, 10, 11]
]
전체 합 : 48  
[
 [6, 7, 8],
 [10, ., 12],
 [14, 15, 16]
]
전체 합 : 88 

n×mn×m 크기의 직사각형 형태 이차원 정수 배열 array가 주어졌을 때 3×33×3 정사각형에서 가운데 블록이 빠진 서브 블록의 원소 총합 중 최댓값과 최솟값을 구하는 solution 함수를 작성하시오.


제한 사항

  • n, m은 3 이상 1,000 이하의 자연수입니다.

  • array의 각 원소는 -10,000 이상 10,000 이하의 정수입니다.


예시 테스트케이스 설명

테스트케이스 번호 array return
1 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] [88,48]
2 [[-5,0,2],[4,-1,9],[7,8,-2]] [23,23]
3 [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]] [0,0]

1번 테스트케이스 설명

  • 문제 지문에서 제시된 예시와 동일합니다.

2번 테스트케이스 설명

  • 가능한 서브 블록이 하나뿐이며 그 원소의 총합은 23입니다. 따라서 [23,23]을 반환합니다.

3번 테스트케이스 설명

  • 모든 원소가 0이므로, 모든 서브 블록의 합도 0입니다. 최대 합과 최소 합 모두 0이 되어 [0,0]을 반환합니다.