문제

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.

예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

제한조건

입출력 예

내 답변

  1. i는 무조건 작은 숫자여야하고 조건식으로 다른 숫자는 무조건 큰 숫자여야 한다.
  2. a, b를 비교해서 작은 건 lowNumber 변수에, 큰 건 largeNumber에 넣어주었다.
  3. for문을 돌려서 숫자를 모두 더해주었다.
function solution(a, b) {
    var answer = 0;
    const lowNumber = a > b ? b : a;
    const largeNumber = a < b ? b : a;
    
    for(let i = lowNumber; i < largeNumber + 1;i++){
        answer += i;
    }
    
    return answer;
}

다른 사람 답변

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

$$ (1+100)*(100/2) $$

1~100을 더하게 될 때 옆의 방식으로 더해도 충분히 가능하다. 앞의 방식을 활용한 것을 가우스 연산이라고 한다.

그래서 a + b를 더해서 양쪽 끝의 합을 구하고, 양 끝의 합의 개수(Math.abs(b-a)+1)/2를 계산하여 서로 곱해준다.