사랑하애오

솔루션1

const solution = (num, total) => {
  const numArray = Array.from({ length: num }, (_, i) => i);
  const sum = numArray.reduce((x, y) => x + y);

  const answer = numArray.map((v) => v - (sum - total) / num);
  console.log(answer);

  return answer;
};

 

 

 

솔루션2

const solution2 = (num, total) => {
  let answer = [];
  let ceilNum = Math.ceil(total / num - Math.floor(num / 2));
  console.log(ceilNum);

  answer = Array.from({ length: num }, (_, i) => i + ceilNum);
  console.log(answer);

  return answer;
};

 

 

 

솔루션3

const solution3 = (num, total) => {
  /**
   * Math.ceil() : 주어진 숫자보다 크거나 같은 숫자 중 가장 작은 숫자를 integer로 반환
   *
   * Math.floor() : 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환
   *
   * Array.prototype.fill() : 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채움
   */
  const min = Math.ceil(total / num - Math.floor(num / 2));
  console.log(min);
  const max = Math.floor(total / num + Math.floor(num / 2));
  console.log(max);

  const answer = new Array(max - min + 1).fill(0).map((v, i) => {
    return i + min;
  });
  console.log(answer);

  return answer;
};
profile

사랑하애오

@사랑하애

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!