본문 바로가기
코딩 문제/프로그래머스 [ JavaScript ]

[ 프로그래머스 / JavaScript ] x만큼 간격이 있는 n개의 숫자

by CODESIGN 2022. 10. 6.

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

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

 

제한 조건

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

 

입출력 예

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

 


나의 문제 풀이

 

function solution(x, n) {
    var answer = [x];
    var original = x;
    for (let i = 1; i < n; i++) {
        answer.push(x+=original);
    }
    return answer;
}

 

 


다른 풀이 1

 

Array()로 n크기 만큼의 배열을 만들어준 뒤,

주어진 x의 값을 채워 넣었다.

map()으로 각 배열의 값에 index 곱하여 값을 구하였다.

 

나의 코드보다 훨씬 간결하고 자바스크립트의 생성자들을 잘 사용하여 코드를 구현하였다.

 

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

 


다른 풀이 2

 

나의 코드와 비슷하지만 다른 점은 push()에서 index에 주어진 값을 구하는 방법을 사용하였다.

 

function solution(x, n) {
    var answer = [];
    for (let i = 1; i <= n; i++) {
        answer.push(x*i)
    }
    return answer;
}

 

댓글