[Programmers #12912] - 두 정수 사이의 합

G_NooN·2024년 1월 5일
0

Algorithms

목록 보기
12/33
post-thumbnail

(Lv. 1) 두 정수 사이의 합 (문제 링크)

문제 설명

두 정수 a, b가 주어졌을 때, a와 b 사이에 속한 모든 정수의 합을 return하는 solution 함수를 완성하라.

제한 조건

  1. a와 b는 -10,000,000 이상, 10,000,000 이하인 정수다.
  2. a와 b의 대소관계는 정해져있지 않다.
  3. a와 b가 같은 경우에는 둘 중 아무거나 return한다.

입출력 예시


해결 방법

  1. Math.min()과 Math.max()를 사용하여 큰 수와 작은 수를 설정한다.
  2. 반복문을 사용하여 작은 수부터 큰 수까지 모두 더한다
  3. 결과를 출력한다.

코드

function solution(a, b) {
  let answer = 0;

  for (let i = Math.min(a, b); i <= Math.max(a, b); i++) {
    answer += i;
  }

  return answer;
}

시행착오

초기 접근 방법

  • a와 b의 대소관계를 구분하는 모든 조건을 분리하여 구현했다.
function solution(a, b) {
  let answer = 0;
  
  // 조건 분리
  if (a < b) {
    // a < b인 경우, a부터 b까지의 모든 수를 더함
    for (let i = a; i <= b; i++) {
      answer += i;
    }
  } else if {
    // a > b인 경우, b부터 a까지의 모든 수를 더함
    for (let i = b; i <= a; i++) {
      answer += i;
    }
  } else {
    // a === b인 경우, a나 b 중 하나를 출력
    answer = a;	// b도 상관없음
  }
}

개선점

  • Math 객체의 메서드 사용 (Math.min(), Math.max())
    • a와 b의 관계를 고려하지 않고 작은 수와 큰 수를 분리할 수 있었다.
    • a와 b가 같은 수인 경우, 작은 수와 큰 수가 동일한 수로 계산되므로 별도의 코드를 구현할 필요가 없었다.

주요 개념

  • Math.min(), Math.max()
profile
쥐눈(Jin Hoon)

0개의 댓글