학습
시험

슬라이딩 윈도우 3

난이도
BEGINNER

문제 설명

슬라이딩 윈도우는 일정 크기의 구간(윈도우)을 배열의 시작부터 끝까지 한 칸씩 옮겨가며, 각 구간에 대해 연산을 수행하는 기법입니다.

정수로 이루어진 일차원 배열 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] : (4+1+5)/3 = 3.333...(4+1+5)/3\,=\,3.333...
    [1,5,0] : (1+5+0)/3 = 2.00(1+5+0)/3\,=\,2.00
    [5,0,-4] : (5+0−4)/3 = 0.333...(5+0-4)/3\,=\,0.333...
    [0,-4,1] : (0−4+1)/3 = −1.00(0-4+1)/3\,=\,-1.00 [-4,1,-10] : (−4+1−10)/3 = −4.333...(-4+1-10)/3\,=\,-4.333...

  • 따라서 평균이 가장 큰 구간은 [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] : (1+2)/2 = 1.5(1+2)/2\,=\,1.5
    [2,3] : (2+3)/2 = 2.5(2+3)/2\,=\,2.5
    [3,4] : (3+4)/2 = 3.5(3+4)/2\,=\,3.5
    [4,5] : (4+5)/2 = 4.5(4+5)/2\,=\,4.5

  • 따라서 평균이 가장 큰 구간은 [4,5]이며 그 값을 소수점 아래 셋째 자리에서 반올림하면 4.5입니다.