[프로그래머스] 스킬트리 - JS

잡초·2024년 4월 29일
0
post-thumbnail

문제

풀이

function solution(n, s) {
    // 자연수의 개수가 합보다 크면 최대의 집합이 존재하지 않으므로 [-1]을 반환
    if (n > s) return [-1];
    
    // 각 원소들을 균등하게 분배하여 최대한 곱을 만드는 방식
    // 각 원소들의 합을 자연수의 개수로 나눈 몫
    const mid = Math.floor(s / n);
    const answer = new Array(n).fill(mid);
    
    // 나머지가 발생할 경우, 나머지만큼 일부 원소에 1을 더함
    for (let i = 0; i < s % n; i++) {
        // 원소들을 작은 숫자부터 정렬하기 위해 배열의 뒤에서부터 계산
        answer[answer.length - 1 - i]++;
    }

    return answer;
}
profile
개발자가 되고싶은 잡초

0개의 댓글