🧬알고리즘/Programmers

[JavaScript] 두 정수 사이의 합

뉴발자 2024. 8. 13.
728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문제

두 정수 a, b가 매개변수로 주어진다.

 

두 정수 a, b 사이의 모든 정수의 합을 리턴하는 함수를 작성하라.

 

단, a, b의 대소관계는 정해져있지 않다.

 

 

나의 풀이

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

 

 

다른 풀이

function adder(a, b){
  var result = 0
  
  return (a+b) * (Math.abs(a-b)+1) / 2;
}

 

 

풀이 방법

조건 중 a, b의 대소관계가 정해지지 않았다고 해서 Math.min() 함수와 Math.max() 함수를 사용하면 되겠다고 생각했다.

 

그리고 최소값부터 최대값까지 for문을 돌려 결과를 반환하면 된다고 생각했다.

 

다른 풀이에서는 가우스 공식을 이용해서 풀이했다.

 

a, b의 대소관계가 정해져있지 않다는 조건때문에 Math.abs() 함수를 사용해서 절대값을 구했다.

// 가우스 공식
양 끝의 합 * 양 끝의 합의 개수

 

 

 

 

 

 

 

 

 

 

728x90

댓글