[Algorithm Study] 두 정수 사이의 합

Dae-Hee·2021년 2월 9일
1

Algorithm Study

목록 보기
3/6
post-thumbnail

프로그래머스 LEVEL1 - 두 정수 사이의 합(JavaScript)

👉 문제 설명

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

👉 사전 구상

주어진 정주를 반복문의 매게변수로 작성한 뒤 반복만큼 정수를 더해준다.

👉 초기 풀이

function solution(a, b) {
    var answer = 0;
    var aa = a;
    var bb = b;
    // 정수 비교 후 재정의
    if(b<a){
        aa = b;
        bb = a;
    }
    for(var i=aa; i<=bb; i++) {
        answer = answer + i;
    }
    return answer;
}

👉 결과 및 보완

비교적 간단한 문제
하지만, a와 b중 어떤 변수가 큰값을 지닐지 모르기 때문에
두 변수를 비교 한 후 변수에 재정의 해주는 코드를 삽입했습니다.
이 부분이 마음에 들지 않아 보완했습니다.

위 코드를 개선하기 위해 Math 객체를 사용했습니다.
Math 객체는 수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 자바스크립트 표준 내장 객체입니다.

// min : 값 중에서 가장 작은 수를 반환
Math.min(1, 10, -100, -10, 1000, 0);     // -100
Math.min(1, 10, -100, -10, "-1000", 0);  // -1000
Math.min(1, 10, -100, -10, "문자열", 0);  // NaN

// max : 값 중에서 가장 큰 수를 반환
Math.max(1, 10, -100, -10, 100, 0);      // 100
Math.max(1, 10, -100, -10, "1000", 0);   // 1000
Math.max(1, 10, -100, -10, "문자열", 0);  // NaN

//예제 출처 : tcpschool

👉 최종 풀이

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

0개의 댓글