학습
시험

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

난이도
BEGINNER

문제 설명

정수로 이루어진 n×mn×m 크기의 이차원 배열이 주어집니다. 이 배열에서 모든 2×22×2 크기의 정사각형 부분 배열(서브 블록)에서 모든 원소의 합을 구한 뒤, 그 중 최댓값과 최솟값을 [최댓값, 최솟값] 형태로 반환하고자 합니다.

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

[
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12]
]

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

[
 [1, 2],
 [5, 6]
]
총합 : 14
[
 [7, 8],
 [11, 12]
]
총합 : 38

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


제한 사항

  • n, m은 2 이상 1,000 이하의 자연수입니다.
  • array의 각 원소는 -10,000 이상 10,000 이하의 정수입니다.

예시 테스트케이스 설명

테스트케이스 번호 array return
1 [[1,2,3,4],[5,6,7,8],[9,10,11,12]] [38, 14]
2 [[-3,-2],[5,1]] [1, 1]
3 [[0,0,0],[0,0,0],[0,0,0]] [0, 0]

1번 테스트케이스 설명

  • 가능한 2×2 서브 블록과 그 합:
[[1,2],[5,6]] → 14  
[[2,3],[6,7]] → 18  
[[3,4],[7,8]] → 22  
[[5,6],[9,10]] → 30  
[[6,7],[10,11]] → 34  
[[7,8],[11,12]] → 38  
  • 최대 합은 38, 최소 합은 14이므로 [38, 14]을 반환합니다.

2번 테스트케이스 설명

  • 한 개의 2×2 서브 블록만 만들어질 때 합은 1입니다. 최대 합과 최소 합 모두 1이므로 [1, 1]을 반환합니다.

3번 테스트케이스 설명

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