[Programmers] 두 정수 사이의 합

sunriseGong·2021년 2월 24일

나의 풀이

function solution(a, b) {
    var answer = 0;
    if (a < b) {
        for (let i = a; i <= b; i++) {
            answer += i;
    }
    } else if (a > b) {
            for (let i = b; i <= a; i++) {
            answer += i;
    } 
    } else {
        answer += a;
    }
    return answer;
    /*
    테스트 1 〉	통과 (0.06ms, 30MB)
    테스트 2 〉	통과 (0.06ms, 30.1MB)
    테스트 3 〉	통과 (0.05ms, 30.3MB)
    테스트 4 〉	통과 (24.53ms, 32.8MB)
    테스트 5 〉	통과 (17.39ms, 32.8MB)
    */
}

다른 사람 풀이 해석

function adder(a, b){

    return (a + b) / 2 * ( Math.abs(b - a) + 1 )
    /*
    가우스 공식을 이용한 풀이

    양쪽 끝을 더한 값을 2로 나누어서 

    더해야될 요소의 개수 만큼 곱해준다.
    
    ex) a = 5, b = 9 일경우
    
    (5 + 9)/2 = 7 
    
    5 + 6 + 7 + 8 + 9 = 7 + 7 + 7 + 7 + 7
    
    7 * 5 = 35
    */

    /*
    테스트 1 〉	통과 (0.05ms, 30.1MB)
    테스트 2 〉	통과 (0.05ms, 30.3MB)
    테스트 3 〉	통과 (0.05ms, 30.2MB)
    테스트 4 〉	통과 (0.05ms, 30.3MB)
    테스트 5 〉	통과 (0.04ms, 30.2MB)
    */
}

문제설명

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

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

제한 조건

a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.


입출력 예

profile
심심해야 공부하게 된다.

0개의 댓글