[프로그래머스] 두 정수 사이의 합_JavaScript

ne_ol·2022년 1월 14일
0
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의 대소관계는 정해져있지 않습니다.

입출력 예

abreturn
3512
333
5312

기본 solution 코드

function solution(a, b) {
    var answer = 0;
    return answer;
}

문제 풀이

function solution(a, b) {
    var answer = 0;
    if (a < b) {
        for (let i = a; i <= b; i++) { // a~b 사이의 모든 i
            answer += i // answer에 모든 i를 더해라
        }
    } else {
        for (let i = b; i <= a; i++) { // b~a 사이의 모든 i
            answer += i
        }
    }
    return answer;
}

풀이 설명

  • a와 b에 대소관계를 주기 위하여 if문을 사용했고, 해당 조건에 맞게 i의 값과 범위를 정해주고 더해주게 하여 해결
  • a = b일 경우, else 문에 들어가게 되고 i의 범위가 a=b ~ b=a 이기 때문에 answer에는 a, b 둘 중 한 값이 들어가게 된다.

사용 함수

undefined

다른 풀이

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

다른 풀이 설명

  1. 사용된 함수
  • Math.abs: 주어진 숫자의 절대값을 반환

(출처: https://developer.mozilla.org/ko/)

  1. 풀이
  • 가우스의 계산법을 아름답게 코딩한 것 같다.
  • Math.abs() + 1: a와 b사이의 있는 정수 개수
  • 대소관계가 없는 a와 b를 고려하여 Math.abs()를 사용한 것이다.
  1. 아름답다
profile
개발되는 중입니다.

0개의 댓글