본문 바로가기
프로그래머스

프로그래머스 Lv.1 : 07. x만큼 간격이 있는 n개의 숫자

by 코린이 박원장👶 2022. 11. 2.

프로그래머스Lv.1 : x만큼 간격이 있는 n개의 숫자


■ 문제 설명

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

■ 내멋대로 풀어헤치기😜

반복문을 통해서 배열의 갯수만큼 반복해줍니다.
근데 반복되는 부분은 +된 값이기때문에 초기값은 그냥 처음부터 변수에 넣어주고 시작합니다.
+된 값은 push로 배열의 끝에 밀어넣어줍니다. 별거없네요

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

■ 다른사람 입맛도 맛보기 😋

'for문을 열심히 썼는데 내 코드가 비참해지는 순간이다' 라는 댓글이 참 와닿네요 ^^
그리고 구글링해서 공부해봤는데 뭔소린지 모르겠습니다... 나빼고 다잘해;

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


📌 나혼자 공부...

Array.prototype.fill()

fill() 메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채웁니다.
예제를 보면 이해는 되는데 이걸 왜 저렇게 쓴건데? 뭔데이게?

const array1 = [1, 2, 3, 4];

// fill with 0 from position 2 until position 4
console.log(array1.fill(0, 2, 4));
// expected output: [1, 2, 0, 0]

// fill with 5 from position 1
console.log(array1.fill(5, 1));
// expected output: [1, 5, 5, 5]

console.log(array1.fill(6));
// expected output: [6, 6, 6, 6]


🙇‍♀️ 틀린 점에 대한 지적은 언제나 환영합니다 🙇‍♂️

728x90

댓글


HTML이미지
HTML이미지

JAVASCRIPT

자세히 보기
HTML이미지