두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
28010
function solution(a, b) {
//두 정수 사이의 값 모두를 배열로 담았다.
let arr =[];
if(a > b){
for (let i = b; i <= a; i++) {
arr.push(i)
}
}else if(a < b){
for (let i = a; i <= b; i++) {
arr.push(i)
}
}else if(a = b){
arr.push(a)
}
//담긴 정수들을 reduce 하였다.
return arr.reduce((a,b) => a + b)
}
분명 math APIs로 풀 수 있는 방법이 있을 것이라 생각했으나 접근은 달랐다.
두 정수사이의 합은 무엇을 떠오르게 하는가?
두 정수의 합은 가우스 공식을 떠오르게 한다..... 미처 생각치 못한 방법으로 접근한 분들께 경외..
function adder(a, b){
//a가 더큰 경우, 더 작을 경우가 있으니 여기서 절대값으로 두 정수 사이 갯수를 구했다.
// 두 정수의 합 * 두 정수 사이를 포함한 값의 갯수 / 2 는 두 정수의 합이 나온다.!
return (a+b)*(Math.abs(b-a)+1)/2;
}