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

SOMEmo·2022년 5월 17일
0
post-thumbnail

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

제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
입출력 예

xnanswer
25[2,4,6,8,10]
43[4,8,12]
-42[-4, -8]

<제출답안>

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

<다른 사람풀이>

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

x=2, n=5인 경우
Array(n) // [empty × 5]
Array(n).fill(x) // [2, 2, 2, 2, 2]
Array(n).fill(x).map((v, i) => (i + 1) * v) //[2, 4, 6, 8, 10]

fill() 메서드는 arr.fill(value [, start [, end]]) 의 구문으로,
value : 배열을 채울 값
start : 시작 인덱스
end : 끝 인덱스 ( end가 3이면, 3은 포함되지 않는다 )

arr.map(callback(currentValue[, index[, array]])[, thisArg])
매개변수
callback
새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가집니다.
currentValue
처리할 현재 요소.
index Optional
처리할 현재 요소의 인덱스.

<다른 사람풀이>

function solution(x, n) {
    return [...Array(n).keys()].map(v => (v + 1) * x);
}

x=2, n=5인 경우
[...Array(n).keys()] //[0, 1, 2, 3, 4]

keys() 메서드는 배열의 각 인덱스를 키 값으로 가지는 새로운 Array Iterator 객체를 반환합니다.
var denseKeys = [...arr.keys()];
console.log(denseKeys); // [0, 1, 2]

0개의 댓글