:ledger: 문제 설명

  • 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
  • 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

:one: 제한사항

  • ab가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • ab는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • ab의 대소관계는 정해져있지 않습니다.

:two: 입출력 예

a b return
3 5 12
3 3 3
3 3 12

:three: 프로그래머스에서 제공한 코드

처음 프로그래머스에서 작성된 코드는 아래와 같다.

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

:ledger: 문제 풀이

const solution = (a, b) => {
  let num = 0;
  for (let i = Math.min(a, b); i <= Math.max(a, b); i++) {
    num += i;
  }
  return num;
};
console.log(solution(3, 5));

:one: 함수 선언

  • 화살표 함수를 사용하여 a, b 매개변수를 받는다.

:two: 풀이

  • ab 연산 후 리턴해줄 변수 num을 생성한다.
  • ab 사이에 속한 모든 정수를 구하기 위해 반복문의 i는 let i = Math.min(a,b) 즉 a,b의 최소값부터 시작해서 Math.max(a,b) 최대값까지 실행되게 작성했다.
  • 반복문이 실행되면서 변수 num에 값을 더해줄 수 있게 적용했다.

:three: 결과 반환

  • a는 3, b는 5일 경우 3+4+5 = 12 반환
  • a는 3, b는 3일 경우 최소값,최대값이 3이여서 3이 반환
  • a는 5, b는 3일 경우 3+4+5 = 12 반환

:four: 실행

  • console.log(solution(3,5)) 실행하면 12이 출력된다.
  • console.log(solution(3,3)) 실행하면 3이 출력된다.
  • console.log(solution(5,3)) 실행하면 12이 출력된다.

:fire: 다른 사람의 풀이 참고

나는 변수를 선언했지만 아래의 풀이에서는 매개변수에서 값을 지정하여 대입했다.
이런식으로도 작성할 수 있는지 처음알아서 신선했다!!

// [22명] 파라미터에서 s의 값을 설정해서 더 간결하게 코드를 작성한 문제 풀이
function adder(a, b, s = 0) {
  for (var i = Math.min(a, b); i <= Math.max(a, b); i++) s += i;
  return s;
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges