카테고리 없음

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

LaKinRad 2022. 4. 28. 18:24

출처/프로그래머스

● 문제 설명

 

함수 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) {
    return Array(n).fill().map((res,i) => x*(i+1));
}

 

Array() 생성자로 n만큼의 길이를 가지고 있는 빈 배열을 생성해서 채워주고,

map() 으로 각 자리의 index에 해당하는 값을 할당한다.


후기

 

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

 

처음에는 이런 식으로 코드를 짰었는데,

문제를 푸는 이유가 없는 것 같아서 다른 방법으로 접근하려고 고민을 많이 했다.

 

여기저기 돌아다니면서 찾다 보니까 Array.fill.map 이 은근히 많이 쓰이는 조합이란 것을 알게 되었고,

나중에 실제로 적용시켜서 활용해보는 것도 좋을 것 같았다.

 

추가로, 처음 보는 메소드를 활용한 풀이도 보았다.

// 다른 사람의 풀이
function solution(x, n) {
    return nNumbers(x,n);
}

const nNumbers = (x, n)=>{
    return Array.from({length: n},(v,index)=>(index+1)*x);
};

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from

 

Array.from() - JavaScript | MDN

Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만듭니다.

developer.mozilla.org