본문 바로가기

프로그래머스 1단계 - x만큼 간격이 있는 n개의 숫자 본문

알고리즘/1단계

프로그래머스 1단계 - x만큼 간격이 있는 n개의 숫자

개발자로 거듭나기 2022. 9. 14. 09:07
반응형

1 단계 : x만큼 간격이 있는 n개의 숫자

코딩테스트 연습 > 연습문제 > 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]

반응형

코드

function solution(x, n) {
    // 아 어렵네 이게 ㅋㅋ
    // Array.from(Array(n).keys()) => n개만큼의 빈배열을 만드는데 원소는 길이가 n인 배열의 인덱스로 채워진다.
    // 여기서 callbackfn을 인자로 받을 수 있는데, el이면 인덱스가 넘어오겠죠? el+1 => 1,2,3,4,5 니까 여기다가 2를 곱하면 답이죠? (1번에서)
    // return Array.from(Array(n).keys(), el => (el+1)*x);
    
    // 꿀팁이네요
    // for문에 인자를 여러개 쓸 수 있네요?
    let answer = [];
    for(let i = 0, ii = 0; ii < n; ii++, i += x) answer.push(i + x); 
    return answer;
}

리뷰

순서는 다음과 같다
1. array.from 메서드를 이용해봅시다. 첫번째 인자로 배열, 두번째 인자로 배열원소를 처리할 콜백이 들어갑니다.
2. Array(n).keys()는 원소의 갯수가 n개인 배열의 key값을 뽑아서 배열로 만들어줍니다.
3. 여기서 콜백으로 원소에 + 1을 더해서 x를 각각 원소에 곱해주면 x만큼 간격이 있는 숫자 배열이 만들어 지겠죠?

총평 : 오랫동안 쓸일이 없었는데, for문에 인자 여러개를 쓸 수 있더라구요? remind 했습니다.

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12954
반응형
Comments