문제를 잘 생각해보면
score를 내림차순 정렬한 이후
m개로 묶은 덩어리가 되는 배열에서
배열의 가장 작은 값 * m개의 누적 합을
구하면 되는 문제였다.
let sum = 0
누적합을 담을 변수를 만들어주고
score.sort((a, b)=> b - a)
score의 요소들을 내림차순 정렬해줬다.
이후,
for(let i = 0; i < score.length; i += m)
묶음이 될 수 있는 score의 요소 수 만큼
반복을 진행해준다.
for문 안에는
let temp = score.slice(i, i + m)
묶음을 만들어준다.
if(temp.length == m)
묶음들 중 개수가 m개이면
sum += temp[m - 1] * m
묶음 중 가장 작은 값 * m개를
누적합에 더해준다.
제출한 코드 :
function solution(k, m, score)
{
let sum = 0
score.sort((a, b)=>b - a)
for(let i = 0; i < score.length; i+= m)
{
if(score.slice(i, i + m).length == m)
sum += score.slice(i, i + m)[m-1] * m
}
return sum
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 58. 소수 만들기(난이도 10) (0) | 2024.08.19 |
---|---|
문제 57. 모의고사 완전 탐색 (난이도 7) (0) | 2024.08.19 |
문제 55. 카드 뭉치(난이도 7)(shift) (0) | 2024.08.02 |
문제 54. (중요)2016년(난이도 10)(Date Class) (0) | 2024.08.02 |
문제 53. 명예의 전당(1)(난이도 7) (0) | 2024.08.02 |