본문 바로가기
Developer/Algorithm

Programmers 프로그래머스 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 (JavaScript)

by roqkfrlfhr 2020. 8. 28.

Programmers 프로그래머스 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 (JavaScript)

 

Programmers의 코딩테스트 연습문제 Level 1의 x만큼 간격이 있는 n개의 숫자 문제를 JavaScript를 사용하여 문제를 풀어보도록 하겠습니다.

 

문제 설명

함수 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]

 

 

작성한 답

solution.js

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

 

설명

정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 배열을 반환하는 solution을 완성하는 문제입니다.

Array.from() 함수만을 가지고 아주 쉽고 간단하게 해결하실 수 있습니다.

Array.from()안에 첫번째 인수로 {length: n}을 삽입하여 Array.from({length: n}); 를 하면 n의 수만큼 요소를 가진 배열이 생성됩니다.

var arr = Array.from({length: 5});
console.log(arr);	// [ undefined, undefined, undefined, undefined, undefined ]

첫번째 인수로 배열의 길이를 정해줬으니 그 안에 값을 넣어주지 않으면 위와 같이 요소들의 값이 모두 undefined가 됩니다.

Array.from()의 두번째 인수로 배열 각 요소의 값을 정해줍니다.

작성한 답의 코드를 풀어내어 console.log()로 진행과정을 출력해서 보여드리겠습니다.

solution(2, 5)

function solution(x, n) {
    var answer = Array.from({length: n}, (v, i) => {
        var value = (i + 1) * x;
        console.log(value);
        return value;
    });
    console.log(answer);
    return answer;
}

// 콘솔 출력
// 2
// 4
// 6
// 8
// 10
// [ 2, 4, 6, 8, 10 ]

Array.from() 함수의 두번째 인수에 들어가는 함수에 첫번째 인자(v)는 현재 해당 요소 값, 두번째 인자(i)는 index를 의미합니다. 그리고 해당 함수의 return 값이 Array.from()으로 만들어지는 배열의 각 요소의 값이 됩니다.

문제에서 x만큼 간격이 있는 n개의 숫자가 담긴 배열은 각 각 요소들이 (index+1) * x 의 값을 가집니다.

여기서부터는 코드를 다시 보시면 바로 이해가 되시리라 생각됩니다.

장황한 설명은 늘...

 

 

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청 사항은 언제든지 말씀 해주세요!

 

감사합니다.


댓글