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문제라고 만만하게 볼 게 아니네...
function solution(a, b) {
return ((a + b) * (Math.abs(b - a) + 1)) / 2;
}