https://school.programmers.co.kr/learn/courses/30/lessons/135808
function solution(k, m, score) {
const highScore = [...score].sort((a,b)=>b-a);
let answer = 0;
for (let i = 0; i < Math.floor(score.length / m); i++) {
const appleBox = highScore.slice(i*m, (i+1)*m);
answer += Math.min(...appleBox) * appleBox.length;
}
return answer;
}
가장 높은 점수의 사과부터 m
개씩 담긴 박스를 만들고, 가장 낮은 점수 * 박스 길이
를 answer
에 더했다.
박스의 개수는 score
의 길이를 m
개로 나눈 몫이므로, 그만큼만 반복문을 돌렸다.
개별 박스는 시작 인덱스 m
의 i
배수, 끝 인덱스 m
의 i+1
배수로 slice
하여 박스에 담지 않은 점수만 사용했다.