[프로그래머스 level1] 두 정수 사이의 합

김예지·2021년 10월 10일
1

문제

https://programmers.co.kr/learn/courses/30/lessons/12912


문제 풀이

코드1

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

    return answer;
}

코드2

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

가우스의 공식으로 풀 수 있다고 한다. (문과 수포자는 첨 듣는 개념🤔)
예를들어, 1~6까지의 합을 구하라고 한다면
(1+6) + (2+5) + (3+4) = 21이다.
즉, (양끝의 합) * (숫자의 갯수/2)를 해주면 된다.
여기서는 a, b의 대소관계가 정해져있지 않다고 되어있기 때문에 절대값을 씌어준다.
이 공식을 쓰니까 코드1과 비교했을때 말도안되게 간단해졌다!
앞으로 양끝 수가 주어지고, 사이의 합을 구하라고 하면 간지나게 가우스의 공식으로 한줄로 끝내야지!✨

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

1개의 댓글

comment-user-thumbnail
2021년 10월 25일

10/25
가우스의 공식

답글 달기