[코드테스트] 두 정수 사이의 합

이강민·2021년 11월 24일
0

[코드테스트]Javascript

목록 보기
28/39
post-thumbnail

두 정수 사이의 합

문제설명

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

입출력 예

나의 풀이

28010

function solution(a, b) {
  //두 정수 사이의 값 모두를 배열로 담았다. 
    let arr =[];
    if(a > b){
        for (let i = b; i <= a; i++) {
            arr.push(i)            
        }
    }else if(a < b){
        for (let i = a; i <= b; i++) {
            arr.push(i)
        }
    }else if(a = b){
        arr.push(a)
    }
  //담긴 정수들을 reduce 하였다. 
  return arr.reduce((a,b) => a + b)
}

다른 사람의 풀이

분명 math APIs로 풀 수 있는 방법이 있을 것이라 생각했으나 접근은 달랐다.
두 정수사이의 합은 무엇을 떠오르게 하는가?
두 정수의 합은 가우스 공식을 떠오르게 한다..... 미처 생각치 못한 방법으로 접근한 분들께 경외..

function adder(a, b){
	//a가 더큰 경우, 더 작을 경우가 있으니 여기서 절대값으로 두 정수 사이 갯수를 구했다. 
  // 두 정수의 합 * 두 정수 사이를 포함한 값의 갯수 / 2 는 두 정수의 합이 나온다.! 
  return (a+b)*(Math.abs(b-a)+1)/2;
}
profile
AllTimeDevelop

0개의 댓글

관련 채용 정보