[프로그래머스 Lv1] 두 정수의 합 - (Javascript)

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

입출력 예

arrayheightresult
[149, 180, 192, 170]1673
[180, 120, 140]1900

제출 답안

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

답안 설명

a와 b의 대소관계가 정해져있지 않았기 때문에 조건문으로 처리를 할까 하다가, Math.max()Math.min()을 사용하여 대소 관계처리를 하였다. 처음엔 배열을 따로 만들고 reduce()를 사용해서 누적값을 리턴하려다가 바로 answer 변수에 값을 더하면 될 것 같아서 코드를 작성했다. for문을 사용하지 않은 방법이 궁금하다.


다른 사람의 풀이

function adder(a, b, s = 0){
  for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
  return s;
}

나와 같은 방식인데 파라미터에 변수를 선언하는 방법은 생각하지 못했다! 파라미터에 변수를 선언하고, 따로 들어오는 변수가 없다면 선언된 값으로 사용된다는 점을 기억하자. 그리고 for문을 통해 반복할 때 s에 값을 바로 더하는 방법도 되게 신기하다. let s = 0; 이라는 코드를 이렇게 없앨 수 있구나.


0개의 댓글