JS코딩테스트

[JS코딩테스트] 두 정수 사이의 합

DaeunCoding 2023. 4. 19. 22:02
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

[나의 풀이]

function solution(a, b) {
    let arr = [a,b].sort((a,b) => a-b);
    let answer = [];
    for(i=arr[0]; i <= arr[1]; i++){
        answer.push(i);
    }
    return answer.reduce((a,b) => a+b);
}

a, b를 포함해서 그 사이에 있는 정수를 모두 더한 값을 구해야 함.

 

for문으로 a와 b 중 작은 수부터 큰 수까지 i++로 돌리며 배열에 추가함.

그 배열의 요소를 reduce를 통해 모두 더함.

 

[다른 풀이]

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

ex. a=3, b=5

(3+5) * (2+1) / 2 = 12

 

천재다...!!

댓글을 보니 가우스가 만든 '등차수열의 합' 공식이었다.

 

* Math.abs()

절대값 반환 (absolute)

 

 

 

728x90
반응형