문제 설명
두 정수 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;
}
요즘 수학적 사고능력이 왜 필요한지 뼈저리게 느끼고 있다.