본문 바로가기
Algorithm/Programmers

[Programmers] 두 정수 사이의 합(JavaScript)

by 백승전 2022. 7. 21.

 

알림

 

본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.

 

문제

 

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

 

프로그래머스

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

programmers.co.kr

 

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

코드

 

// 초기
function solution(a, b) {
    var answer = 0;
    
    if(a <= b){
        for(let i = a; i <= b; i++){
            answer += i;
        }
    }else {
        for(let i = b; i <= a; i++){
            answer += i;
        }
    }
    
    return answer;
}

 

 

// 리팩토링
function solution(a, b) {
    var answer = 0;
    
    const plus = (a, b) => {
        for(let i = a; i <= b; i++){
            answer += i;
        }
    }
    
    a <= b ? plus(a, b) : plus(b, a)
    
    return answer;
}

 

풀이

 

입력된 작은 수부터 시작해 입력된 큰 수까지 증가하는 i를 반복문을 통해 더해주면 되는 간단한 문제입니다.

 

그런데 문제를 보면 무조건 a에 작은 값이 입력되는 게 아닌, b가 작을 수도 있고, 둘이 같은 값이 입력될 수도 있습니다.

따라서 조건문으로 범위를 a <= b와 a > b 두 개로 나눠서 계산을 해 줬습니다.

 

블로그 포스팅 중에 발견한 건데, 반복문이 유사한 형태로 사용되었길래, 중복되는 코드를 지우고자 함수로 만들어, 조건문에 따라 매개변수를 전송하도록 코드 리팩토링을 해 봤습니다. 2줄 정도 깔끔해졌네요 ㅎㅎ

댓글