[프로그래머스] 코딩테스트 연습 - 두 정수 사이의 합 (javascript)

지미노·2022년 9월 2일
0

코딩테스트

목록 보기
21/40
post-thumbnail
post-custom-banner

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

생각해본 풀이법.

for문으로 b까지 반복하면서 숫자 더하기

하지만 세가지 경우가 있다.
1. a==b
2. a > b
3. a < b

1번의 경우, 그냥 a 리턴하기

2, 3 번의 경우 반복문 사용!

function solution(a, b) {
    let answer = 0;
    if (a == b){
        return a
    } else if (a < b) {
        for(a; a <= b; a++){
        answer = answer + a;
        } return answer
    }else{
        for(b; a >= b; b++){
         answer = answer + b;
    } return answer
}
}

흠 쉽게 완성했는데 코드가 좀 더럽네....

다른 사람 답안

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

삼항연산자 이용

function adder(a, b){
    var result = (a<b)?a:b;
    while(a!=b){
      result += (a<b)?++a:++b;
    }    
    return result;
}
post-custom-banner

0개의 댓글