코딩테스트

[프로그래머스] 짝수의 합

john-lennon 2026. 5. 5. 16:17

문제 설명

정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.

 

제한사항

  • 0 < n ≤ 1000

입출력 예

n result
10 30
4 6

 


 

나의 코드

function solution(n) {
    let answer = 0;
    
    for (let i = 1; i <= n; i++) {
        if (i % 2 ===0) {
            answer += i;
        }
    }
    return answer;
}

 

방식

1부터 n까지 숫자를 하나씩 확인하면서, 각 숫자가 짝수인지 검사한다.

짝수라면 그 숫자를 answer에 누적해서 더하고, 홀수는 건너뛴다.

즉, 전체 범위를 순회 → 조건 확인 → 필요한 값만 누적


다른 사람의 코드

function solution(n) {
    var answer = 0;

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

    return answer;
}

 

나와의 차이점

2부터 시작해서 2씩 증가하므로 반복 대상자체가 짝수만 포함된다. 

내 코드는 조건문이 필요하고 반복횟수가 더 많지만, 위의 코드는 조건문 없이 더 적은 반복으로 같은 결과를 구함.

 


 

느낀점

같은 for문을 사용했지만, 나는 모든 수를 반복한 뒤 if문으로 짝수를 한 번 더 판별해야 했다. 반면 다른 사람의 코드는 시작값과 증가값을 처음부터 짝수 기준으로 설정해 불필요한 조건문 없이 더 간결하게 구현한 점이 인상적이었다. 즉, 단순히 반복문을 사용하는 것에서 끝나는 것이 아니라, 반복 구조 자체를 어떻게 설계하느냐에 따라 코드가 더 효율적이고 깔끔해질 수 있다는 점을 느꼈다.