블로그

[프로그래머스, 자바스크립트] 알고리즘-1 두 정수 사이의 합 본문

알고리즘

[프로그래머스, 자바스크립트] 알고리즘-1 두 정수 사이의 합

wooluck 2019. 11. 4. 23:51

출처 : 프로그래머스 알고리즘 코딩테스트 Level.1

 

https://programmers.co.kr/learn/courses/30/lessons/12912?language=javascript

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

제한 조건

1. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
2. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
3. a와 b의 대소관계는 정해져있지 않습니다.

입출력 예
a | b | return
3 | 5 | 12
3 | 3 | 3
5 | 3 | 12

풀이 과정

1. a와 b의 대소관계 비교, 만약 a와 b가 같다면 a 반환

2. 최솟값과 최댓값 범위를 벗어난다면 false 반환

3. 대소관계를 비교 후 min값 부터 max값 까지 반복문을 이용하여 합산

4. 결과 반환

 

답안

function solution(a, b) {
  let max, min;
  if(a === b) {
    return a;
  } else if(a > b) {
    max = a;
    min = b;
  } else {
    max = b;
    min = a;
  }
  if(min < -10000000 || max > 10000000) {
    return false;
  } 
  let answer = 0;
  for(let i = min ; i <= max; i += 1) {
    answer += i;
  }
  return answer;
}

 

문제를 푸는 시점에서 최솟값, 최댓값 부분을 간과했다.

2~14번 라인의 유효성 검사 부분을 간결하게 바꿀 수 없을까?

 

Comments