자바스크립트 코딩테스트 정리

프로그래머스 코딩테스트입문 LEVEL 0 짝수는 싫어요

우주전사버즈 2023. 7. 13. 14:08

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


제한사항

  • 1 ≤ n ≤ 100

문제분석:

매개변수로들어온 n보다 작은숫자들을 담은 배열중 홀수만을 담은 배열을 return해야한다.

 

 

문제 풀이 순서.

 

1.n보다 작은 숫자들을 배열에 저장 해야 한다.

let fullnum = [];
let cnt = 1;

while(cnt <= n){
	fullnum.push(cnt);
cnt += 1;
}

 

2. n보다작은 숫자들을 저장한 배열은 다음과같은값을 가지게된다.

ex) solution(10) -> fullnum[1,2,3,4,5,6,7,8,9,10]

 

3.이제 n이하의 숫자들을 저장한 배열에서 홀수만 남게 걸러 내야 한다.

기존의 fullnum 배열에서 숫자를 직접 삭제하는방법도있지만 나는 그냥 또 다른 홀수만담는배열 holarr 배열을 만들어서 그곳에 따로 n이하의 홀수 숫자들만 담아두었다.

 let cnt2 = 0;
//2. n이하의 숫자들을 모두저장한 배열에있는 숫자중 홀수만을 걸러낼것이다.
    while(cnt2 < fullnum.length){
    if(fullnum[cnt2] % 2 == 1) {
           holarr.push(fullnum[cnt2]);
        }
        cnt2 += 1;
    }

 

 

다른사람의 풀이 

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

    for (let i = 1; i<=n; i+=2) answer.push(i)

    return answer;
}

반복문에서 직접 1부터 n까지의 숫자들을 반복하면서 i가 2씩 늘어남에 따라 1,3,5 홀수 만을 담는 배열을 만들어 냈다.