문제

 

풀이 코드

function solution(a, b) {
  let min = a < b ? a : b;
  return [...Array(Math.abs(a - b) + 1).keys()]
    .map((item) => item + min)
    .reduce((sum, item) => sum + item, 0);
}

 

풀이 과정

범위의 값을 저장 하기위해 검색을 했다

keys() 함수를 쓰면, 0부터 차례대로 연속된 수를 저장할수 있다!

Array의 크기를 두수의 차이 + 1 만큼 지정해주고,

 

a 와 b 중 최솟값을 삼항연산자로 구한다음, map 과 reduce 를 이용해 수의 합을 구했다.

 

채점 통과가 되긴 했으나, 시간이 좀 오래걸렸다 아무래도 함수를 많이 사용하고 그래서 그런거같다

다른사람의 코드를 참고해야만 할거 같아서 제출하고 다른 풀이를 봤다

 

다른사람의 코드

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

할말을 잃었다

 

두수의 합 * 두수 사이의 범위 크기 / 2

 

와;; 이거만 하면 배열을 생성할 일도 없고 그냥 바로 계산이 가능하다

갓갓

+ Recent posts