[JavaScript] 프로그래머스 최고의 집합 LEVEL3

김예진·2021년 2월 14일
1

코딩 테스트

목록 보기
37/42

문제출처

function solution(n, s) {
    if (n > s) return [-1];
    const mid = Math.floor(s / n);
    const answer = new Array(n).fill(mid);
    
    for (let i=0; i<s % n; i++) {
        answer[answer.length - 1 - i]++;
    }
    
    return answer;
}

풀이

뽀인트는 return할 배열의 원소들의 차가 가장 적은 것이 최고의 집합이다.
예를 들어, n=5, s=10일때는 [2,2,2,2,2]가 최고의 집합이고
n=5, s=8일때는 [1,1,2,2,2]가 최고의 집합이다.

  1. answer를 s / n의 몫으로 채운다.
  2. s % n만큼 반복문을 돌리며 뒤에서부터 answer의 값을 1씩 추가해준다. (내림차순으로 return해야하니까)

0개의 댓글