컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 홀짝 구분하기

peridott 2026. 1. 11. 17:03

문제


정답

import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        
        if(n % 2 == 0) {
        	System.out.println(n + " is even");
        } else {
        	System.out.println(n + " is odd");
        }
    }
}

개념설명

1. import.java.util.Scanner;

import.java.util.Scanner;

✔️ 의미

  • Scanner 클래스를 사용하겠다고 자바에게 알려주는 문장
  • Scanner는 입력(키보드 입력)을 받기 위한 클래스

✔️왜 import가 필요할까?

  • Scanner는 java.lang 패키지가 아니라 java.util 패키지 안에 있음
  • 그래서 직접 import 해줘야 함.

❌ import가 없으면?

Scanner sc = new Scanner(System.in); // 컴파일 에러

 

 

2. 클래스 선언

public class Solution {

✔️ 의미

  • Solution이라는 클래스 정의
  • 자바 프로그램은 반드시 클래스 안에서만 실행

✔️public의 의미

  • 어디서든 접근 가능
  • 온라인 코딩 테스트에서든 클래스 이름을 문제에서 요구한 이름으로 맞춰야 함.

 

3. main 메서드 (프로그램 시작점)

public static void main(String[] args) {

✔️ 의미

  • 프로그램이 실행되면 가장 먼저 호출되는 메서드
  • 자바의 진입점(entry point)
문법 의미
public JVM이 접근 가능해야 함
static 객체 생성 없이 실행
void 반환값 없음
main 메서드 이름 (고정) / main 메서드는 형태가 절대 바뀌면 안됨
String[] args 실행 시 전달되는 인자

 

4. Scanner 객체 생성

Scanner sc = new Scanner(System.in);

✔️ 의미

  • Scanner 객체를 생성
  • 키보드 입력을 받을 준비
문법 의미
Scanner 클래스(설계도)
sc 객체 변수 이름 (아무 이름 가능)
new Scanner(...) 객체 생성
System.in 표준 입력(키보드)

📌  즉, 키보드에서 입력을 읽을 수 있는 Scanner 객체를 만들겠다.

 

5. 정수 입력 받기

int n = sc.nextInt();

✔️ 의미

  • 키보드로 입력한 값을 정수(int)로 받아서
  • 변수 n에 저장

✔️ 동작 순서

  1. 사용자 입력 대기
  2. 숫자 입력 (예: 7)
  3. nextInt()가 정수로 변환
  4. n에 저장

❌ 정수가 아닌 값 입력하면?

InputMismatchException

 

6. 나머지 연산자 %

n % 2

✔️ 의미

  • 나누고 남은 나머지

✔️ 예시

7 % 2 = 1
8 % 2 = 0

📌 짝수 판별의 핵심 공식

n % 2 == 0 // 짝수
n % 2 == 1 // 홀수

 

7. if 조건문

if (n % 2 == 0) {

✔️ 의미

  • 조건이 true면 {} 안의 코드 실행
부분 의미
n % 2 2로 나눈 나머지
== 같다 (비교 연산자)
0 기준 값
  • n을 2로 나눈 나머지가 0이면

8. 출력문 (짝수일 때)

System.out.println(n + " is even");

✔️ 의미

  • 콘솔에 출력 + 줄바꿈

✔️ 내부 동작

n + " is even"
  • n은 int
  • " is even"은 String
  • String이 포함되면 → 문자열 연결

 

9. else 문

} else {

✔️ 의미

  • if 조건이 false일 때 실행

 

10. 출력문 (홀수일 때)

System.out.printLn(n + " is odd");

🔚 전체 흐름 요약 ( 실행 순서)

  1. 프로그램 시작 (main)
  2. Scanner 생성
  3. 정수 입력 받음
  4. 짝수인지 검사
  5. 짝수면 " is even" 출력
  6. 아니면 " is odd" 출력

💡 핵심 포인트 정리

문법 의미
import 외부 클래스 사용
Scanner 입력 처리
System.in 키보드 입력
nextInt() 정수 입력
% 나머지 연산
== 값 비교
if / else 조건 분기
System.out.println() 출력 + 줄바꿈

💡 꿀 팁

  • Scanner는 마지막에 닫는 게 좋음
sc.close();
  • 삼항 연산자로도 문제 풀이 가능
System.out.println(n + (n % 2 == 0 ? " is even" : " is odd"));