[프로그래머스] 짝수는 싫어요


문제 설명

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ n ≤ 100

입출력 예

nresult
10[1, 3, 5, 7, 9]
15[1, 3, 5, 7, 9, 11, 13, 15]

입출력 설명

입출력 #1

  • 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.

입출력 #1

  • 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다.

나의 첫번째 풀이

function solution(n) {
  var answer = [];
  for (let i = 1; i <= n; i++) {
    if (i % 2 == 1) {
      answer.push(i);
    }
  }
  return answer;
}

나의 두번째 풀이(Code Refactoring)

function solution(n) {
  return Array.from({ length: n }, (_, idx) => idx + 1).filter(
    (num) => num % 2 === 1
  );
}

//Array.from 함수는 배열을 생성하고 초기화하는 메서드로, 첫 번째 인자로 배열의 길이를 지정하고 두 번째 인자로 콜백 함수
//filter를 사용하여 홀수만 추출

참고 할 만한 다른 사람의 코드

function solution(n) {
  return Array(n)
    .fill(0)
    .map((v, index) => v + 1 + index)
    .filter((v) => v % 2);
}

//Array.fill 이용