Programmers/Level 1

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

emayom 2021. 6. 26. 13:02

⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도 입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️

 

 

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

 

👇🏻문제링크

 

 

🔍 무난한 정답

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

 

👇🏻

시행착오

( + 코드를 작성하면서든 생각들.)

1.

처음에는 구구단 처럼 값을 인덱스 마다 대입해줬다.

인덱스가 0부터 시작해서 그냥 i+1으로 곱했다,, ㅎ

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

2.

배열이 선언된 채 세팅이 되어있기 때문에 

반복문을 돌면서 .push()를 사용하는 것으로 수정 해 주었다.

.push() 덕분에 index는 신경쓰지않고 i를 곱하는 것으로 수정했다.

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

3. 

풀이를 보다가 for반복문 없이 함수만으로 풀이한 것이 있길래 정리해봤다!

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

Array(n).fill(x)  =>  x값으로 모두 채워진 길이 n의 배열에 

.map((v,i) => v*(i+1));  => map으로 v(currentValue)에 i(index) + 1 을 곱한 결과 배열을 바로 리턴했다.

 

👇🏻MDN_Array.prototype.map()