[프로그래머스 LV.0] (Javascript) 연속된 수의 합

Hannah Lee·2023년 1월 4일
0

프로그래머스 LV.0

목록 보기
3/10

😎 링크

프로그래머스 - 연속된 수의 합

😎 고려할 사항

  • 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) {
    // total = standard * num + (num/2) 이므로
    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;
}

😎 문법 정리

  • X
profile
프론트 어쩌고

0개의 댓글