Lv.1 두 정수사이의 합

susu.J·2020년 9월 30일
0

문제 설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

제한 조건

a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.

입출력 예

a b return
3 5 12
3 3 3
5 3 12

풀이

function solution(a, b) {
  const number = [];
  for(let i = -10000000; i <= 10000000; ++i) {
    number.push(i);
  }
  if(a <= b) {
    const result = number.splice(a + 10000000, b - a + 1);
    return result.reduce((prev, curr) => {
      return prev + curr;
    }, 0);
  } else {
    const result = number.splice(b + 10000000, a - b + 1);
    return result.reduce((prev, curr) => {
      return prev + curr;
    }, 0);
  }
}

간단한 풀이

가우스의 합으로 이렇게 간단하게도 풀어볼 수 있다.
수학 수만자인 동생한테 등차수열 열강듣고 이해하게됬다. (문과라죄송합니다.. )

((y-x)+1)(x+y)/2

function solution(a, b) {
  return (a + b) * ((a > b ? a - b : b - a) + 1) / 2;
}

요즘 수학적 사고능력이 왜 필요한지 뼈저리게 느끼고 있다.

profile
on the move 👉🏼 https://sjeong82.tistory.com/

0개의 댓글