알고리즘

프로그래머스 Level 1 -두 정수의 합(Javascript)

또롱또 2022. 5. 13. 11:49
728x90

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

function solution(a, b) {
    // 정답을 받을 변수
    var answer = 0;
    // 합을 저장할 변수
    let sum = 0;
    // 빈배열
    let arr = [];
    // 배열에 a와 b에서 받아온 값을 push한다
    arr.push(a);
    arr.push(b);
    // 배열을 a-b 오름차순으로 sorting한다
    arr.sort((a,b)=>(a-b))
    // 만약 두 수가 같을경우
    if(arr[0] === arr[1])
        // 인덱스0번을 return
        return arr[0]
    else{
        // 다른경우는 숫자는 두개뿐이니까, 첫번째수에서 두번째수까지
        // for loop 돌면서 값을 i로 빼온다
        for(let i=arr[0]; i<=arr[1]; ++i ){
            // sum = sum + i
            sum += i;
        }
    }
    // 제출해야할 답에 넣어준다.
    answer = sum
    
    return answer;
}

제일 앞에있던 문제인데 코드를 너무 길게 써버렸나 싶다.. 알고리즘인데..

 

정답이다.

생각해보니 두 수의 합은 가우스 공식을 이용하면 된다.

(제일앞숫자 + 제일뒤숫자) x (전체숫자/2)

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

 

728x90