문제

정답
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부터 n까지 홀수만 반복
- 홀수 합 계산
- 결과 반환
✔️ n이 짝수일 때
- 짝수인지 판단
- 2부터 n까지 짝수만 반복
- 짝수 제곱 합 계산
- 결과 반환
💡 핵심 포인트 정리
| 문법 | 의미 |
| % | 홀/짝 판별 |
| if / else | 조건 분기 |
| for | 반복 |
| i += 2 | 홀수/짝수만 반복 |
| sum += | 누적 |
⚠️ 자주 하는 실수
❌ i++ 사용
for(int i = 1; i <= n; i++) {
- 홀수/짝수 구분 안 됨
- += 2 반드시 필요
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
| [Java] 프로그래머스 코딩테스트 연습 / 공배수 (0) | 2026.01.25 |
|---|---|
| [Java] 프로그래머스 코딩테스트 연습 / n의 배수 (0) | 2026.01.24 |
| [Java] 프로그래머스 코딩테스트 연습 / 두 수의 연산값 비교하기 (0) | 2026.01.24 |
| [Java] 프로그래머스 코딩테스트 연습 / 더 크게 합치기 (0) | 2026.01.23 |
| [Java] 프로그래머스 코딩테스트 연습 / 문자열 곱하기 (0) | 2026.01.22 |