두 정수 사이의 합

WooBuntu·2020년 7월 27일
0

두 정수 사이의 합

2020.07.27

const totalSum = (start, end) => {
  let sum = 0;
  for (let i = start; i <= end; i++) {
    sum += i;
  }
  return sum;
};

const solution = (a, b) => {
  if (a == b) {
    return a;
  } 
  if (a > b) {
    return totalSum(b, a);
  } 
  if (a < b) {
    return totalSum(a, b);
  }
};
  • 클린 코드를 보고 나니 조건문 쓸 때마다 좌절감이...

  • 다른 사람의 풀이를 보니 그냥 수학 못하는 빡대가리인 게 문제인 것 같다

const solution = (a, b) => {
  const averageOfTwo = (a + b) / 2;
  const lengthBetweenTwo = Math.abs(a - b) + 1;
  const sum = averageOfTwo * lengthBetweenTwo;
  return sum;
};
  • 양 끝의 합을 평균내고, 그 평균값을 양 값 사이의 개수만큼 곱하면 총합이 나온다

  • 효율성이 압도적으로 좋다
    (시간복잡도가 n에서 1로 내려갔으니;;)

  • 조건문이 필요없다;;

  • level 1문제라고 만만하게 볼 게 아니네...

2020.09.12

function solution(a, b) {
  return ((a + b) * (Math.abs(b - a) + 1)) / 2;
}

0개의 댓글