🧬알고리즘/Programmers

[JavaScript] x만큼의 간격이 있는 n개의 숫자

뉴발자 2024. 8. 21.
728x90
반응형

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문제

정수 x와 자연수 n이 매개변수로 주어진다.

 

x부터 시작해 x씩 증가하는 숫자를 n개 지닌 배열을 반환하는 함수를 작성하라.

 

 

예시

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

 

 

나의 풀이

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

 

 

다른 풀이

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

 

 

풀이 방법

먼저 문제에서 n번 반복해야 된다는 조건에 for문을 사용하기로 했다.

 

빈 배열을 하나 생성해주고 for문을 사용해서 i의 값을 1씩 증가시키면서 x * i 값을 빈 배열에 넣어주고 결과를 반환했다.

 

 

다른 사람의 풀이를 보니 코드가 간결하고 이해하기 쉬웠다.

 

먼저 Array()와 fill() 함수를 사용해서 길이가 n이고 값이 x로 채워진 배열을 만들어줬다. ([2, 2, 2, 2, 2])

 

그리고 map() 함수를 사용해 해당 값을 i+1 * v 만큼 증가시킨 배열을 반환했다.

 

for문을 사용하지 않고 푸는 연습을 많이해야겠다고 생각했다. 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글