문제 이름 : 최고의 조합
<<< 문제 내용 >>>
function solution(n, s) {
const middleValue = Math.floor(s / n);
if (middleValue === 0) return [-1];
const upCaseCount = s % n;
let answer = new Array(n).fill(middleValue);
for (let i = 0; i < upCaseCount; i++) {
answer[answer.length - 1 - i]++;
}
return answer;
}
* 고민을 좀 하면 간단한 문제다.
곱셈해서 가장 높은 수가 되어야 하는데 그럼 최대한 중간에 가까운 수만 모여있어야 한다.
그러면 s를 n으로 나눠 내림한 수가 중간 수가 되고, 나머지만큼만 각각 +1해주면 총 갯수도 맞게 된다.
그 이후에 오름차순으로 값을 만들어야 하기 때문에, 뒤에서부터 +1을 해주면 끝
도움이 되셨다면 공감 부탁드립니다.