두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
function solution(a, b) {
let answer = 0;
let min = a < b ? a : b;
let max = b < a ? a : b;
for(let i = min; i <= max; ++i){
answer += i;
}
return answer;
}
for문에 크거나 같은 조건으로 a와 b가 같은 경우에도 둘 중 하나의 값을 리턴한다!
생각 나는데로 금방 풀 수도 있었지만, 뭔가 더 효율적으로 풀 수 있는 방법이 없을까 고민해봤지만 계산식이나 패턴을 못 찾았다. ㅠㅠ 그래서 기대감을 가지고 다른 사람의 풀이 확인 버튼을 누른다!!
function solution(a, b){
return (a+b)*(Math.abs(b-a)+1)/2;
}
올레~~ 어떤 멋진 분께서 계산식을 잘 찾은 것 같다!! 내가 원하던 효율적인 방법이다.
공식은 외워야지 (두 수의 합) * (두 수의 차이 절댓 값 + 1) / 2)
참고 자료 및 사이트 (감사합니다)