#1. 두 정수 사이의 합

 

문제 설명

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

 

제한조건

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

 

입출력 예

a b return
3 5 12
3 3 3
5 3 12

 

풀이

function solution(a, b) {
  // 값을 더할 변수 선언
  let result = 0;
  
  // 파라미터로 받은 값 a 부터 b와 같을 때 까지 반복하면서 값을 더한다
  for(let i = a; i <= b; i++) result += i;
  // 만약 파라미터로 받은 값 a가 b보다 클 경우 b 부터 a 까지 반복하면서 값을 더한다
  if(a > b) for(let i = b; i <= a; i++) result += i;

  return result;
}

// 호출
solution(3,5);  // 12
solution(3,3);  // 3
solution(5,3);  // 12

 

결과

 

소감

반복문만 활용할 줄 아면 쉽게 푸는 문제였습니다.

a값 보다 b값이 클 경우 if문을 활용해서 해결했지만, 다른 분의 풀이를 보니 Math 객체를 활용하면 더 쉽고 간결하게 풀 수 있는 방법을 알게 되었습니다.

function solution(a, b) {

  let result = 0;
  for(let i = Math.min(a, b); i <= Math.max(a,b); i++) result += i;

  return result;
}

Math 객체의 min() 함수와 max() 함수를 사용하여 a와 b 값을 비교해 if문을 사용하지 않고 해결 할 수 있습니다.

+ Recent posts