컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 홀짝에 따라 다른 값 반환하기

peridott 2026. 1. 26. 20:38

문제


정답

class Solution {
	public int solution(int n) {
    	if (n % 2 == 1) {
        	int sum = 0;
            for(int i = 1; i <= n; i += 2) {
            	sum += i;
            }
            return sum;
        } else {
        	int sum = 0;
            for(int i = 2; i <= n; i += 2) {
            	sum += i * i;
            }
            return sum;
        }
    }
}

개념설명

1. 클래스 선언

class Solution {

✔️ 의미

  • Solution이라는 이름의 클래스 정의

 

2. 메서드 선언

public int solution(int n) {

✔️ 의미

  • 정수 n을 입력받음
  • n이 홀수면 → 홀수들의 합
  • n이 짝수면 → 짝수들의 제곱의 합
  • 그 결과를 정수로 반환

 

3. 첫 번째 조건문 (홀수인지 판단)

if (n % 2 == 1) {

✔️ 의미

  • n을 2로 나눈 나머지가 1이면
  • n은 홀수

 

4. 홀수일 때: 합을 저장할 변수 선언

int sum = 0;

✔️ 의미

  • 홀수들의 합을 누적할 변수
  • 반드시 0으로 초기화해야 함

 

5. 홀수만 반복하는 for문

for(int i = 1; i <= n; i += 2) {

✔️ 의미

  • i를 1부터 시작
  • n보다 작거나 같을 때까지 반복
  • 매번 2씩 증가 → 홀수만 순회

✔️ for문 구조

for(초기식; 조건식; 증감식)
부분 의미
int i = 1 시작 값
i <= n 반복 조건
i += 2 홀수만 증가

 

6. 홀수 누적 합

sum += i;

✔️ 의미

  • 현재 홀수 i를 sum에 더함
sum = sum + i;

 

7. 홀수 케이스 결과 반환

return sum;

✔️ 의미

  • 계산된 홀수 합 반환
  • 메서드 즉시 종료

 

8. 짝수일 때 (else)

} else {

✔️ 의미

  • n이 짝수인 경우 실행

 

9. 짝수 합 변수 선언

int sum = 0;

✔️ 의미

  • 짝수 제곱 합을 누적할 변수
  • 홀수 케이스와 완전히 독립된 변수

 

10. 짝수만 반복하는 for문

for(int i = 2; i <= n; i += 2) {

✔️ 의미

  • i를 2부터 시작
  • n 이하까지
  • 2씩 증가 → 짝수만 순회

 

11. 짝수 제곱 누적

sum += i * i;

✔️ 의미

  • 현재 짝수 i를 제곱
  • 그 값을 sum에 더함

✔️ 예시

i i x i sum
2 4 4
4 16 20
6 36 56
8 64 120

 

12. 짝수 케이스 결과 반환

return sum;

🔚 전체 실행 흐름 요약

✔️ n이 홀수일 때

  1. 홀수인지 검사
  2. 1부터 n까지 홀수만 반복
  3. 홀수 합 계산
  4. 결과 반환

✔️ n이 짝수일 때

  1. 짝수인지 판단
  2. 2부터 n까지 짝수만 반복
  3. 짝수 제곱 합 계산
  4. 결과 반환

💡 핵심 포인트 정리

문법 의미
% 홀/짝 판별
if / else 조건 분기
for 반복
i += 2 홀수/짝수만 반복
sum += 누적

⚠️ 자주 하는 실수

❌ i++ 사용

for(int i = 1; i <= n; i++) {
  • 홀수/짝수 구분 안 됨
  • += 2 반드시 필요