😎 링크
프로그래머스 - 연속된 수의 합
😎 고려할 사항
- num으로 주어지는 숫자가 홀수일 경우 → total값은 중간값의 num배
(ex. a-2, a-1, a, a+1, a+2 의 합은 5a)
- num으로 주어지는 숫자가 짝수인 경우 → total값은 중간(왼쪽)값의 num배 + num/2
(ex. a-1, a (얘가 중간왼쪽 값), a+1, a+2 의 합은 4a+2)
- num이 짝수/홀수냐에 따라 규칙에 대한 분기가 갈리므로 짝수/홀수를 구분짓는 로직 필요
😎 소스코드
function solution(num, total) {
var answer = [];
let isEven, standard;
if (num % 2 == 0) {
isEven = true;
} else {
isEven = false;
}
if (isEven) {
standard = (total - num / 2) / num;
} else {
standard = total / num;
}
if (isEven) {
for (let i = standard - num / 2 + 1; i <= standard + num / 2; i++) {
answer.push(i);
}
} else {
for (
let i = standard - Math.floor(num / 2);
i <= standard + Math.floor(num / 2);
i++
) {
answer.push(i);
}
}
return answer;
}
😎 문법 정리