Dragonball Online Goku Hand
본문 바로가기
알고리즘 도장깨기

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

by 별의 코비 2022. 11. 14.
728x90

🔥 Programmers Lv.1 : x만큼 간격이 있는 n개의 숫자


🔍 문제 : " 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. "

📎 조건 :
∙ x는 -10000000 이상, 10000000 이하인 정수입니다.
∙ n은 1000 이하인 자연수입니다.


👉🏻 My answer

function solution(x, n) {
    var answer = [];
    let plus = x;
    for(let i=0; i<n; i++){
        answer.push(x)    //x값을 처음으로 넣어주어햐 하므로 뒤에 식보다 먼저 옴
        x += plus 
    }
    return answer;
}
: n번만큼 반복하여 x에서 x만큼 더한 값을 배열에 넣어주어야 하기 때문에 for문과 push메서드를 사용해주었습니다.


👉🏻 Another ways

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
: 배열에 n만큼 x로 채운 후 요소의 값을 인덱스+1 * 요소의 값만큼 해준 값으로 반환하는 것입니다.
function hide_numbers(s) {
    return s.replace(/\d(?=\d{4})/g, "*");
  }
: /\d(?=\d{4})/g => /정규식/, g: 전체, \d: 숫자[0-9]랑 같음, {n}: 앞의 식이 n번 반복, x(?=y) : y뒤에 있는 x만 대응, \d(?=\d{4}) : 뒤에 달아 숫자 4개가 있다면 그 앞(x)부분
: 정규식으로 쓰니 한 줄이면 충분하군요? 멋있다.

댓글