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
, 패키지 선언은 제거, 외부 라이브러리 금지, 이 세 가지만 기억해도 제출 오류 대부분은 피할 수 있습니다.
반응형
'언어 · 런타임 > Java' 카테고리의 다른 글
Java를 처음 배우는 개발자들을 위한 스터디 (0) | 2025.04.21 |
---|