문제 설명
정수 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문으로 짝수를 한 번 더 판별해야 했다. 반면 다른 사람의 코드는 시작값과 증가값을 처음부터 짝수 기준으로 설정해 불필요한 조건문 없이 더 간결하게 구현한 점이 인상적이었다. 즉, 단순히 반복문을 사용하는 것에서 끝나는 것이 아니라, 반복 구조 자체를 어떻게 설계하느냐에 따라 코드가 더 효율적이고 깔끔해질 수 있다는 점을 느꼈다.
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 진료순서 정하기 (0) | 2026.05.27 |
|---|---|
| [프로그래머스] 외계행성의 나이 (0) | 2026.05.26 |
| [프로그래머스] 각도기 (0) | 2026.04.29 |
| [프로그래머스] 특정 문자 제거하기 (0) | 2026.04.29 |
| [프로그래머스] 문자 반복 출력하기 (0) | 2026.04.28 |