Algorithm/프로그래머스

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

양원준 2023. 10. 27. 15:29
728x90

문제 설명

 

  • 두 정수 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 return
3 5 12
3 3 3
5 3 12

 

 

 

 

나의 답

 

function solution(a, b) {
    var answer = 0;
    
    var max = Math.max(a,b)
    var min = Math.min(a,b)
    
    for(min; min <=max; min++){
        answer +=min
    }
    
    return answer;
}

 

math 함수를 이용해 두 수중 큰 값을 max, 작은 값을 min에 넣고

반복문을 이용해 answer 에 더해준다

 

 

 

 

 


다른 사람의 답

 

function adder(a, b){
    var result = 0

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

 

 

가우스의 법칙을 이용해 문제를 풀이하였다

 

  • (a+b) * (Math.abs(a-b)+1) / 2 이는 등차 수열의 합 공식이다
    • (a+b), 수열의 첫번째와 마지막 항의 합을 계산하여 a-b 사이의 범위를 구한다
    • Math.abs(a-b)+1 , a와 b사이의 항의 수를 계산
    • /2 , 결과를 2로 나누어 합을 얻는다

 

이는 모든 정수의 합으로 반환한다

 

 

 

결론, 수학을 잘해야된다..,.!

 

 

 

728x90