두 정수 사이의 합 (javascript)

weffa·2022년 3월 17일
0

문제 설명

두 정수 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의 대소관계는 정해져있지 않습니다.

입출력 예

abreturn
3512
333
5312

문제 풀이

function solution(a, b) {
  let answer = 0;
  if (a>b) {
    for (let i = b; i <= a; i++) {
      answer += i
    }
  }else if (a<b) {
    for (let i = a; i <= b; i++) {
      answer += i
    }
  }else {
   answer = a 
  }
  return answer;
}
  1. 반환할 값을 0으로 선언한다.
  2. a와 b의 대소를 구분하여 작은 수가 큰 수가 될때까지 1씩 더해가며 나온 수들을 모두 더해준다.
  3. a와 b가 같다면 a를 반환한다.

다른 풀이

function solution(a, b) {
  let answer = 0;
  for (let i = Math.min(a,b); i <= Math.max(a,b); i++) {
  	answer += i
  }
  return answer;
}
  1. Math.min()Math.max()의 대소를 구분해 주어 작은 값이 큰값이 될때까지 1씩 더해가며 나온 수들을 모두 더해준다.

다른 풀이

function solution(a, b) {
  return (a+b)*(Math.abs(a-b)+1)/2
}
  1. 가우스의 덧셈방식을 이용해서 구할수도 있다.
  2. 반복문을 사용하지않아 속도가 훨씬 빠르다.

0개의 댓글