학습
시험

네 방향 인접 합 2

난이도
BEGINNER

문제 설명

이차원 정수 배열에서 모든 위치에서 상, 하, 좌, 우 네 방향에 존재하는 이웃 원소를 모두 더한 값을 구하려고 합니다. 만약 이웃이 배열의 경계를 넘어간다면 해당 방향은 무시하고 배열 범위 내에 있는 이웃 원소의 합만 계산합니다.
이차원 정수 배열 grid가 주어질 때 grid의 모든 위치에 대해 상·하·좌·우 이웃 중 배열의 범위를 넘어가지 않는 원소들의 합을 계산하여 결과를 grid와 동일한 크기의 이차원 배열 형태로 반환하는 solution 함수를 작성하시오.

예를 들어, 아래와 같이 3×3 배열이 있다고 할 때:

1 2 3
4 5 6
7 8 9

위치별로 네 방향 이웃 원소들의 합은 아래와 같이 계산됩니다.

위치 계산식 결과
(0, 0) 2 + 4 6
(0, 1) 1 + 3 + 5 9
(0, 2) 2 + 6 8
(1, 0) 1 + 5 + 7 13
(1, 1) 2 + 4 + 6 + 8 20
(1, 2) 3 + 5 + 9 17
(2, 0) 4 + 8 12
(2, 1) 5 + 7 + 9 21
(2, 2) 6 + 8 14

따라서 아래의 결과를 반환해야 합니다.

 6  9  8
13 20 17
12 21 14

제한 사항

  • grid는 N ×\times M 크기의 이차원 정수 배열입니다.
  • N(grid의 행 개수)은 2 이상 1,000 이하의 자연수입니다.
  • M(grid의 열 개수)은 2 이상 1,000 이하의 자연수입니다.
  • grid의 각 원소는 -1,000 이상 1,000 이하의 정수입니다.

예시 테스트케이스 설명

테스트케이스 번호 grid return
1 [[1,2,3],[4,5,6],[7,8,9]] [[6,9,8],[13,20,17],[12,21,14]]
2 [[5,1],[2,3]] [[3,8],[8,3]]
3 [[7,3,5],[1,9,2],[4,6,8],[0,1,2]] [[4,21,5],[20,12,22],[7,22,10],[5,8,9]]

1번 테스트케이스 설명

  • 문제 지문에서의 예시와 일치합니다.

2번 테스트케이스 설명

  • 위치별로 네 방향 이웃 원소들의 합은 아래와 같이 계산됩니다.

    위치 계산식 결과
    (0, 0) 1 + 2 3
    (0, 1) 5 + 3 8
    (1, 0) 5 + 3 8
    (1, 1) 1 + 2 3
  • 따라서 아래의 결과를 반환해야 합니다.

    3  8
    8  3
    

3번 테스트케이스 설명

  • 위치별로 네 방향 이웃 원소들의 합은 아래와 같이 계산됩니다.

    위치 계산식 결과
    (0, 0) 1 + 3 4
    (0, 1) 9 + 7 + 5 21
    (0, 2) 2 + 3 5
    (1, 0) 7 + 4 + 9 20
    (1, 1) 3 + 6 + 1 + 2 12
    (1, 2) 5 + 8 + 9 22
    (2, 0) 1 + 0 + 6 7
    (2, 1) 9 + 1 + 4 + 8 22
    (2, 2) 2 + 2 + 6 10
    (3, 0) 4 + 1 5
    (3, 1) 6 + 0 + 2 8
    (3, 2) 8 + 1 9
  • 따라서 아래의 결과를 반환해야 합니다.

     4 21  5
    20 12 22
     7 22 10
     5  8  9