
안녕하세요.
오늘은 이어서 정답률 53% 문제를 풀어보겠습니다.
function solution(num, total) {
var answer = [];
if(num>=total){
if(total !== 0){
for(let i = -total;i<=total;i++){
let tot = 0;
for(let j=i;j<i+num;j++){
tot+=j;
}
if(tot === total){
for(let j=i;j<i+num;j++){
answer.push(j)
}
return answer;
}
}
}
else{//0일때
answer.push(0);
for(let i=1;i<=parseInt(num/2);i++){
answer.push(i);
answer.unshift(-i);
}
return answer
}
}
else{//num<total
for(let i = total;i>0;i--){
let tot = 0;
for(let j=i;j>i-num;j--){
tot+=j;
}
if(tot === total){
for(let j=i;j>i-num;j--){
answer.push(j)
}
return answer.reverse();
}
}
}
}
저는 이 문제에서 total이 0일때를 고려하지 못해 첫 시도에서 실패했습니다.
(추가!!)
function solution(num, total) {
let min = Math.ceil(total/num-num/2);
return new Array(num).fill(0).map(x=> min++)
}