야근 지수 javascript

HyosikPark·2021년 3월 29일
0

알고리즘

목록 보기
69/72
function solution(n, works) {
    let max = works.sort((a,b) => b-a)[0];
    
     outer: while(n) {
         if (!max) return 0;
        for (let i = 0; i < works.length; i++) {
            if (max === works[i]) {
                works[i] -= 1;
                n--;
                continue outer;
            }
        }
         max--;
    }
    
    return works.reduce((acc,e) => acc + e ** 2, 0)
}

Math.max로 최대값을 찾아 줄여나가는 방법은 효율성이 떨어진다. 내림차순으로 정렬한 뒤 탐색하여 제거해 나가는 방법으로 테스트 통과.

0개의 댓글