코딩테스트

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

john-lennon 2026. 4. 4. 18:17

문제설명

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

 

제한사항

1 ≤ n ≤ 100

 

입출력 예

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

 


 

목적

n 이하의 홀수가 오름차순으로 담긴 배열 return

 

나의 코드

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

 

방식

반복문으로 n 까지의 숫자를 돌면서 홀수인 것만 배열에 넣기


 

다른 사람의 코드

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

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

    return answer;
}

 

나와의 차이

  • 0부터 n까지 전부 검사
  • 매번 if로 홀수인지 확인

다른 사람의 코드

  • 처음부터 홀수만 순회
  • 조건문 자체가 필요 없음

⇒ 나는 일단 다 돌고 걸러내는데 다른 사람의 코드는 처음부터 필요한 것만 뽑음

 


 

느낀점

단순히 반복문을 사용하는 것보다 어떻게 순회하느냐에 따라 코드가 더 효율적으로 바뀔 수 있다는 점을 느꼈다. 나는 단순히 모든 숫자를 돌면서 홀수를 걸러내는 식으로만 생각했는데 다른 사람의 코드를 보니 처음부터 홀수만 순회하도록 설계해서 불필요한 조건문을 제거한 점이 인상적이었다. 앞으로는 문제를 풀 때 단순히 정석적인 방법도 좋지만 불필요한 연산을 줄일 수 있는 더 효율적인 접근 방식도 함께 고민해야겠다고 느꼈다.