https://school.programmers.co.kr/learn/courses/30/lessons/12938
function solution(n, s) {
if(n > s) return [-1];
const middle = Math.floor(s / n);
const result = new Array(n).fill(middle);
for(let i = 0; i < s % n; i++){
result[result.length - 1 - i]++;
}
return result;
}
if(n > s)의 경우 크기가 1인 1차원 배열을 뜻한다.
middle을 통해 중간값을 구한 후 자연수 n의 개수만큼 배열을 만들어준다. 그리고 middle을 채워준다.
s % n 홀수 인 경우, result[result - 1 - i]++을 통해 값을 더해준다.
solution(2,9)를 예로 들었을 때,
middle은 4입니다. result에 4를 전부 채워넣습니다.
홀수인 경우 9 % 2를 통해 1이라는 값을 얻을 수 있습니다. 결국 반복문은 0입니다.
result[result.length - 1 - 0]을 통해 result의 1번째(첫번째) 자릿값을 얻을 수 있습니다.
이 상황에서 ++을 통해 4라는 값에 1을 더해줍니다.
그럼 문제가 원하는 값 곱셈의 최대값을 구할 수 있습니다.