Programmers Coding Challenge 2 : 리스트 출력

Minhyeok Kim·2022년 8월 3일
0

알고리즘(Algorithm)

목록 보기
2/5

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

Given condition,
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.

가장 먼저 주어진 코드의 의미를 파악해보자,

function solution(x, n) {
  var answer = [];
  return answer;
}
// solution 이라는 함수가 정의되었고 (x, n)을 매개변수로 받아
// 함수 지역스코프에서 배열 answer 가 정의 되었고,
// answer 의 값을 return 하게 돼

내가 한 풀이

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

  for (i = 0; i < n - 1; i++) {
    // 위에서 한번 이미 입력했기 때문에 1회 적게 반복시켜봄
    answer.push(Number(answer[i] + x));
  }
  return answer;
}

다른 사람들의 풀이

function solution(x, n) {
  return Array(n)
    .fill(x)
    .map((v, i) => (i + 1) * v);
}
// fill 을 이용해서 n개의 요소를 가지는 배열을 x로 싹다 채우고
// map 메서드의 기능, v 에 요소, i 에 인덱스를 받아서
// 계산값을 리턴한다
// 와... 리스펙

function solution(x, n) {
  var answer = [];
  for (let i = 1; i <= n; i++) {
    // 나와는 반대로 1부터 시작해서 같은 값까지
    answer.push(x * i);
    // 근데 answer를 뽑는게 정말 간결하네 ...
  }
  return answer;
}

map 메서드의 기능

0개의 댓글