[프로그래머스] 최고의 집합 / JavaScript / Level 3

KimYoungWoong·2022년 12월 5일
0

Programmers

목록 보기
36/60
post-thumbnail

🚩문제 주소


📄풀이

수학...?

숫자들의 차가 작을수록 곱이 커지므로 n의 개수만큼 s를 n으로 나눈 몫을 정답배열에 넣어줍니다.

s를 n으로 나눈 나머지 수 만큼 정답배열의 앞 숫자부터 1씩 증가시킵니다.

정답배열에 0이 없으면 정답배열을 오름차순으로 정렬하여 반환하고, 하나라도 있으면 [-1]을 반환합니다.



👨‍💻코드

function solution(n, s) {
  const answer = [];
  let remainder = s % n;
  for (let i = 0; i < n; i++) {
    answer.push(parseInt(s / n));
  }

  for (let i = 0; i < remainder; i++) {
    answer[i]++;
  }

  return answer.every((v) => v !== 0) ? answer.sort((a, b) => a - b) : [-1];
}

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글