문제 설명
이차원 정수 배열에서 모든 위치에서 상, 하, 좌, 우 네 방향에 존재하는 이웃 원소를 모두 더한 값을 구하려고 합니다. 만약 이웃이 배열의 경계를 넘어간다면 해당 방향은 무시하고 배열 범위 내에 있는 이웃 원소의 합만 계산합니다.
이차원 정수 배열 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 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