[프로그래머스] 양끝의 합

Narcoker·2022년 9월 16일
0

코딩테스트

목록 보기
31/150

문제 설명

두 정수 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의 대소관계는 정해져있지 않습니다.

입출력 예

풀이

a,b의 대소가 주어지지 않았으므로 구조분해할당을 통한 자리변경을 해준뒤
for문을 사용하여 각 값을 더해주었다.

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

다른사람의 풀이

가우스 함수를 통한 풀이
양 끝의 합(a+b) * 양 끝의 합의 개수
만약 개수가 홀수 개일 경우 나머지 하나는 양 끝의 합의 절반 값이므로
나누기 2를 해준 값이 양 끝의 합의 개수가 된다.

function adder(a, b){
    return (a+b)*(Math.abs(b-a)+1)/2;
}
profile
열정, 끈기, 집념의 Frontend Developer

0개의 댓글