새소식

Programmers

[Programmers] 최고의 조합 문제 - (javascript)

  • -
728x90
문제 이름 :  최고의 조합

 

<<< 문제 내용 >>>

 

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을 해주면 끝

 

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.