문제 설명
n × m 크기의 이차원 정수 배열 grid와 행 번호 r, 열 번호 c가 주어졌을 때, (r, c) 위치를 중심으로 8방향(상·하·좌·우와 네 대각선) 이웃까지 고려하여 가중 평균 규칙에 따라 가중 평균값을 소수점 셋째 자리에서 반올림하여 둘째 자리까지 반환하는 solution 함수를 작성하시오.
가중 평균 규칙
- 현재 위치
(r, c)의 값에는"가중치 3"을 곱합니다. - 상·하·좌·우 네 방향의 값에는 각각
"가중치 2"를 곱합니다. - 대각선 네 방향(좌상, 우상, 좌하, 우하)의 값에는 각각
"가중치 1"을 곱합니다. - 배열의 경계를 넘어가는 칸은 무시하며, 배열 범위 내의값만 계산에 포함합니다.
-
따라서 가중 평균 계산식은 아래와 같습니다.
제한 사항
grid는 n × m 크기의 이차원 정수 배열입니다.n(grid의 행 개수)은 1 이상 1,000 이하의 자연수입니다.m(grid의 열 개수)은 1 이상 1,000 이하의 자연수입니다.
grid의 각 원소는 -10,000 이상 10,000 이하의 정수입니다.r은 0 이상n - 1이하의 정수입니다.c는 0 이상m - 1이하의 정수입니다.
예시
아래와 같은 3 × 3 배열이 있을 때:
1 2 3
4 5 6
7 8 9
(0, 1) 위치를 기준으로
- 현재 값 2 → 가중치 3
- 상·하·좌·우 값 5, 1, 3 → 각각 가중치 2
- 대각선 값 4, 6 → 각각 가중치 1
따라서 계산식에 따라 가중 평균값은 이므로 소수점 아래 셋째 자리에서 반올림한 결과는 3.09입니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | grid | r | c | return |
|---|---|---|---|---|
| 1 | [[1,2,3],[4,5,6],[7,8,9]] | 0 | 1 | 3.09 |
| 2 | [[10,20],[30,40]] | 0 | 1 | 23.75 |
| 3 | [[7,1,4],[6,5,3],[9,8,2]] | 2 | 0 | 7.50 |
1번 테스트케이스 설명
-
(0, 1)위치를 기준으로 아래 원소들이 가중 평균 계산에 사용됩니다.- 현재 값 2 → 가중치 3
- 상·하·좌·우 값 5, 1, 3 → 각각 가중치 2
- 대각선 값 4, 6 → 각각 가중치 1
-
계산식에 따라 계산된 가중 평균값은 이므로 소수점 아래 셋째 자리에서 반올림한 결과 3.09를 반환합니다.
2번 테스트케이스 설명
-
(0, 1)위치를 기준으로 아래 원소들이 가중 평균 계산에 사용됩니다.- 현재 값 20 → 가중치 3
- 좌 값 10, 하 값 40 → 각각 가중치 2
- 좌하 대각선 값 30 → 가중치 1
-
계산식에 따라 계산된 가중 평균값은
이므로 소수점 아래 셋째 자리에서 반올림한 결과는 23.75를 반환합니다.
3번 테스트케이스 설명
(2, 0)위치를 기준으로 아래 원소들이 가중 평균 계산에 사용됩니다.- 현재 값 9 → 가중치 3
- 상 값 6, 우 값 8 → 각각 가중치 2
- 우상 대각선 값 5 → 가중치 1
- 계산식에 따라 계산된 가중 평균값은 이므로 소수점 아래 셋째 자리에서 반올림한 결과는 7.50을 반환합니다.