본문 바로가기
Language/Java

[Programmers | Java | 코딩테스트 입문 문제 풀이] 짝수의 합 - Solution with Loop

by ㅇ달빛천사ㅇ 2024. 6. 4.
728x90

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);

💬 무엇을 새롭게 알았는지

문제에서 원하는 값을 구할 때, 필요한 규칙을 찾고 그에 맞는 코딩을 하는 방법을 익힐 수 있었다.

728x90


Top