저장을 습관화

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

코딩 테스트/프로그래머스 - 자바스크립트

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

ctrs 2023. 7. 28. 20:14

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

https://school.programmers.co.kr/learn/courses/30/lessons/12954

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 명

x만큼 간격이 있는 n개의 숫자


2. 문제 설명

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


3. 제한 사항

x는 -10000000 이상, 10000000 이하인 정수입니다.

n은 1000 이하인 자연수입니다.


4. 예시

x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4,-8]


5. 기본 제공 코드

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


6. 제출한 내 답

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

  for (i = 0; i < n; i++) {
    answer[i] = x * (i + 1);
  }

  return answer;
}

 

6-2. VSC에 작성한 내용

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

  for (i = 0; i < n; i++) {
    answer[i] = x * (i + 1);
  }

  return answer;
}

// 테스트
console.log(solution(2, 5));
console.log(solution(4, 3));
console.log(solution(-4, 2));


7. 특이사항

반복문을 돌때 x를 더해주는 곳에서 조금 시간이 걸렸음

for (i = 0; i < n; i++) {
    answer[i] = x;
    x += x;
  }

위와 같이 적어줬더니

[2,4,6,8,10]이 아닌

[2,4,8,16,32]가 나오더라고


8. 다른 사람이 작성한 답

8-1. 고수

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

 

8-2. 배열에 직접 집어넣기

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

나는 배열의 각 자리를 지정해서 그 곳에 값을 넣었는데

x*1, x*2, x*3.. 계산해서 나오는 수를 바로바로 배열에 넣었다

이 방법을 사용한 사람들이 가장 많더라 난 생각도 못했는데

와 이거 기발하다