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

ne_ol·2022년 1월 15일
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]

기본 solution 코드

function solution(x, n) {
    var answer = [];
    return answer;
}

문제 풀이

function solution(x, n) {
    var answer = [];
    for (let i = 1; i < n+1; i++) { 
    //i가 0이 아닌 1부터 시작하기 때문에 i의 범위를 n+1로 지정해준다
        answer.push(x*i); //answer array에 x*i 값들을 넣어라
    }
    return answer;
}

풀이 설명

어렵지 않았다.

사용 함수

  • .push(): 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환

(출처: https://developer.mozilla.org/ko/)


다른 풀이

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

다른 풀이 설명

  1. 사용된 함수
  • .fill(): 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채움
    • arr.fill(value[, start[, end]])
  • .map(): 행렬의 덧셈 의 다른 풀이 참고

(출처: https://developer.mozilla.org/ko/)

  1. 풀이
  • n(5)개의 값이 있는 Array를 만든다. -> 그 안을 다 x(2)로 채운다 -> n(5)개의 현재 요소, v(2) 에 인덱스 (i=0~4) 를 준다 -> ((0~4) + 1) * v(=2) 한 값들로 v를 바꾼다.
  1. .map 활용이 엄청나다. 어렵다 .map
profile
개발되는 중입니다.

0개의 댓글