KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
2️⃣ 짝수의 합
🏷 Topic : Loop For문 등차수열의 합
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한사항
0 < n ≤ 1000
입출력 예
| n | result |
|---|---|
| 10 | 30 |
| 4 | 6 |
입출력 예 설명
입출력 예 #1
- n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
입출력 예 #2
- n이 4이므로 2 + 4 = 6을 return 합니다.
✔ Solution with Loop
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 0; i <= n; i +=2) {
answer += i;
}
return answer;
}
}
채점 결과

✔ Solution with Arithmetic Series
class Solution {
public int solution(int n) {
int answer = (n / 2) * (n / 2 + 1);
return answer;
}
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제의 Point : 정수 n이 주어질 때, n이하의 짝수의 합을 반환하라.
1. for문을 이용한 방법
- for문을 1부터 n까지 돌려서 짝수인 값만 answer에 더해주자.
for (int i = 0; i <= n; i +=2) {
answer += i;
}
2. 등차수열의 합(Arithmetic Series) 공식을 이용한 방법
등차수열의 합 공식을 이용하면 1부터 n까지 모든 자연수의 합은
$$\sum_{x = 1}^n\ x = \frac{n \times (n + 1)}{2}$$
이를 응용하여 1부터 n까지의 짝수의 합을 구해보자.
일단,1부터 n까지 짝수는 $\frac{n}{2}$개 있다.
첫번째 짝수는 $1 \times 2$,
두번째 짝수는 $2 \times 2$,
...,
마지막 짝수는 $\frac{n}{2} \times 2$
즉, 1부터 n까지의 짝수를 모두 더하는 것은
$(1 \times 2) + (2 \times 2) + (3 \times 2) + \cdot\cdot\cdot + (\frac{n}{2} \times 2)\\= (1 + 2 + 3 + \cdot\cdot\cdot + \frac{n}{2})\times2\\=\sum_{x = 1}^\frac{n}{2} \times 2\\=\frac{\frac{n}{2}\cdot(\frac{n}{2} + 1)}{2}\times2\\= \frac{n}{2}\cdot(\frac{n}{2} + 1)$
$\frac{n}{2}\cdot(\frac{n}{2} + 1)$와 같다.
그래서 answer에 (n / 2) * (n / 2 + 1)를 할당하자.
int answer = (n / 2) * (n / 2 + 1);
💬 무엇을 새롭게 알았는지
문제에서 원하는 값을 구할 때, 필요한 규칙을 찾고 그에 맞는 코딩을 하는 방법을 익힐 수 있었다.