슬라이딩 윈도우
score
배열을 내림차순으로 정렬합니다.
left
와 right
를 각각 0
과 left + m
으로 할당합니다.
score
배열을 left
부터 right
전 까지 자른 다음, 그 중 가장 작은 값에 * m
을 해주고 정답 변수에 더합니다.
left
를 right
로 재할당하고, right
를 left + m
으로 재할당합니다.
right
가 score
배열의 길이를 넘는다면 반복을 종료하고 정답을 반환합니다.
function solution(k, m, score) {
let answer = 0;
let left = 0;
let right = left + m;
score = score.sort((a, b) => b - a);
while (right <= score.length) {
answer += Math.min(...score.slice(left, right)) * m;
left = right;
right = left + m;
}
return answer;
}