문제 풀기/JavaScripts

문제 22. 두 정수 사이의 합(난이도 4)(다른 사람 풀이 가우스 덧셈 공식)

kagan-draca 2024. 7. 16. 14:50

 

if문을 통한 Swap 알고리즘과 for문을 이용한 반복문을 사용하지 않고 결과를 도출하고 싶었지만 알고리즘이

생각나지 않아 결국 if문과 for문을 사용하게 됐다...

 

다른 사람의 코드를 보니깐

function adder(a, b){
    var result = 0
    //함수를 완성하세요
    return (a+b) * (Math.abs(a-b)+1) / 2;
}

 

가우스의 덧셈 공식을 이용해서 빠르게 문제를 푸는 걸 확인했다.

 

1. a + b를 구한다.

2. Math.abs(a-b) + 1로 a와 b 사이 개수를 구한다.

3. 첫 번째 단계의 결과와 두 번째 단계의 결과를 곱한 후, 2로 나눕니다.

 

 

제출한 코드 : 

 

function solution(a, b) 
{
    if(a > b)
    {
        let temp = a;
        a = b;
        b = temp;
    }
    let answer = 0;
    for(let i = a; i <= b; i++) answer += i;
    return answer;
}