Algorithm | 두 정수 사이의 합

권기현·2021년 3월 17일
0

Algorithm

목록 보기
4/20

프로그래머스 lv1

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

입출력 예

abreturn
3512
333
5312

나의 풀이

function solution(a, b) {
    if(a<b){
        return (b-a+1)*(a+b)/2;
    }else if(a>b){
        return (a-b+1)*(a+b)/2;
    }else{
        return a;
    }
}

등차수열의 합 공식을 이용해서 해당 문제를 풀었다.

등차수열의 합 = 항의 갯수 * 평균값

(Sn: 등차수열 합의 일반항, n: 항의 갯수, a1: 첫번째 항)


다른 풀이

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

등차수열의 합 공식을 사용하기 위해서는 항의 갯수(n)를 구하기 위해서 a와 b 두 숫자의 차이를 구해야했고, a와 b의 대소관계를 구분하고자 if문을 사용하였다.

하지만 Math.abs()를 사용하면 a,b의 차의 절대값을 구할 수 있기 때문에 코드가 훨씬 간결해진다.

- Math.abs()

Math.abs(x)

  • 매개변수
    x : 숫자.
  • 반환 값
    : 주어진 숫자의 절대값.

참고할 만한 자료 | 자바스트립트의 Math 객체(Object)

profile
함께 일하고 싶은 개발자를 목표로 매일을 노력하고, 옷을 좋아하는 권기현 입니다.

0개의 댓글