백준 Java 제출 가이드: 클래스명 Main부터 입출력까지 완벽 정리
2025. 4. 24. 17:13
728x90

[백준 Java 제출 가이드] 알고리즘 문제를 Java로 제출할 때 꼭 알아야 할 규칙과 팁 정리

백준(BOJ, https://www.acmicpc.net )에서 알고리즘 문제를 Java로 풀고자 한다면, 다른 언어와는 조금 다른 제출 규칙을 반드시 숙지해야 합니다.
이 포스트에서는 Java로 백준 문제를 제출할 때 꼭 알아야 할 작성 규칙, 입출력 방식, 자주 하는 실수 등을 정리해드립니다.


클래스 이름은 반드시 Main

  • 백준은 Java 프로그램의 진입점으로 public class Main을 요구합니다.
  • 다른 이름을 사용하면 컴파일 에러가 발생합니다.
public class Main {
    public static void main(String[] args) {
        // 코드 작성
    }
}

표준 입력 / 출력 처리 방식

📥 입력 받기

Scanner 사용 (쉬움, 느림)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        System.out.println(a);
    }
}

BufferedReader 사용 (어려움, 빠름)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine());
        System.out.println(a);
    }
}

출력하기

System.out.println() 사용

System.out.println("Hello World");

BufferedWriter 사용 (빠른 출력)

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("Hello World\n");
bw.flush();
bw.close();

제출 시 반드시 확인할 사항

항목 설명
클래스 이름 반드시 Main이어야 함
package 사용 금지 (package 선언 시 에러 발생)
외부 라이브러리 사용 불가 (Java 기본 라이브러리만 가능)
파일 구조 클래스 하나로 작성된 단일 파일 (Main.java)로 제출
입력/출력 콘솔 기준 입출력 처리 (Scanner, BufferedReader, System.out, BufferedWriter 등)

빠른 입출력 예시 (추천)

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String s = br.readLine();
        bw.write(s + "\n");

        bw.flush();
        bw.close();
        br.close();
    }
}

마무리

Java는 상대적으로 입출력에서 신경 써야 할 부분이 많습니다.
특히 대용량 입출력 문제에서는 BufferedReader, BufferedWriter를 적극적으로 활용하세요.

클래스명은 무조건 Main, 패키지 선언은 제거, 외부 라이브러리 금지, 이 세 가지만 기억해도 제출 오류 대부분은 피할 수 있습니다.

반응형