:ledger: 문제 설명

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

:one: 제한사항

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

:two: 입출력 예

x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4,-8]

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

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

function solution(x, n) {
  var answer = 0;
  return answer;
}

:ledger: 문제 풀이

const solution = (x, n) => {
  const arr = [];
  let num = x; // 2
  for (let i = 1; i <= n; i++) {
    arr.push(num);
    num = num + x;
  }
  return arr;
};
console.log(solution(2, 5)); // [2,4,6,8,10]

:one: 함수 선언

  • 화살표 함수를 사용하여 xn을 매개변수를 받는다.

:two: 풀이

  • 먼저 x부터 시작해서 x씩 증가하기 위해서 변수 numx 값을 담아준다.
  • 이후 증가하는 숫자를 n번 지니는 리스트를 담아줘야해서 배열을 미리 생성해둔다. arr = []
  • for 반복문을 통해 n번 동안 반복하여(let i = 1; i <= n; i++) arr 변수에 담아준다.
  • 변수에 담아준 x는 x만큼 증가해야 하기에 num = num + x배열에 넣어줄 x = 배열에 넣어줄 x + 기존 x값으로 arr변수에 담아준 후 반복문이 종료되면 변수 arr 을 리턴한다.

:three: 결과 반환

  • x의 값은 2, n의 값은 5일경우 [2,4,6,8,10] 을 반환한다.
  • x의 값은 4, n의 값은 3일경우 [4,8,12] 을 반환한다.
  • x의 값은 -4, n의 값은 2일경우 [-4,-8] 을 반환한다.

:four: 실행

  • console.log(solution(2,5)) 실행하면 [2,4,6,8,10] 출력된다.
  • console.log(solution(4,3)) 실행하면 [4,8,12] 출력된다.
  • console.log(solution(-4,2)) 실행하면 [-4,-80] 출력된다.

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

같은 for문을 사용해서 문제를 풀었는데 댓글에는 근본이라고 하고 3367명이나 같은 방법으로 문제를 해결했다..
풀이 과정을 보면 현재 값 + x 값 이란 말 자체가 현재 값 x i과 동일하다.
출력되는 값을 동일했지만, 다른 사람의 풀이 과정이 좀 더 간결하고 보기 좋은 것 같다.

// [3367명] for 문을 사용한 문제 풀이
function solution(x, n) {
  var answer = [];
  for (let i = 1; i <= n; i++) {
    answer.push(x * i);
  }
  return answer;
}

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