솔루션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;
};
'프로그래머스(Javascript) > Level 0' 카테고리의 다른 글
[프로그래머스 | 자바스크립트] 잘라서 배열로 저장하기 (0) | 2023.02.04 |
---|---|
[프로그래머스 | 자바스크립트] 문자열 밀기 (0) | 2023.02.04 |
[프로그래머스 | 자바스크립트] 종이 자르기 (0) | 2023.02.04 |
[프로그래머스 | 자바스크립트] 다음에 올 숫자 (0) | 2023.02.04 |
[프로그래머스 | 자바스크립트] 옹알이 (0) | 2023.02.04 |