문제 설명
슬라이딩 윈도우는 일정 크기의 구간(윈도우)을 배열의 시작부터 끝까지 한 칸씩 옮겨가며, 각 구간에 대해 연산을 수행하는 기법입니다.
정수로 이루어진 일차원 배열 numbers와 슬라이딩 윈도우의 구간 크기 window가 주어졌을 때, 배열의 시작부터 끝까지 크기가 window인 연속 구간의 최대 평균값을 반환하는 solution 함수를 작성하시오.
각 윈도우의 평균값은 소수점 아래 셋째 자리에서 반올림하여 소수점 둘째 자리까지 표시합니다.
제한 사항
-
numbers의 길이는 1 이상 100,000 이하입니다. -
numbers의 각 원소는 -1,000 이상 1,000 이하의 정수입니다. -
window는 1 이상numbers의 길이 이하의 자연수입니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | numbers | window | return |
|---|---|---|---|
| 1 | [4,1,5,0,-4,1,-10] | 3 | 3.33 |
| 2 | [4,1,5,0,-4,1,-10] | 7 | -0.43 |
| 3 | [1,2,3,4,5] | 2 | 4.5 |
1번 테스트케이스 설명
-
배열 내 연속한 3개 원소씩 묶어 평균을 구하면 아래와 같습니다.
[4,1,5]:
[1,5,0]:
[5,0,-4]:
[0,-4,1]:[-4,1,-10]: -
따라서 평균이 가장 큰 구간은 [4,1,5]이며 그 값을 소수점 아래 셋째 자리에서 반올림하면 3.33입니다.
2번 테스트케이스 설명
- 전체 배열([4,1,5,0,-4,1,-10])의 평균은 (4+1+5+0-4+1-10)/7 = -0.42857...이므로 소수점 아래 셋째 자리에서 반올림하여 -0.43을 반환합니다.
3번 테스트케이스 설명
-
배열 내 연속한 2개 원소씩 묶어 평균을 구하면 아래와 같습니다.
[1,2]:
[2,3]:
[3,4]:
[4,5]: -
따라서 평균이 가장 큰 구간은 [4,5]이며 그 값을 소수점 아래 셋째 자리에서 반올림하면 4.5입니다.