728x90
반응형
코딩테스트 제출 시 Scanner을 입력하면 시간초과가 나는 경우가 많이 있습니다.
BufferedReader를 이용하여 해당 시간초과를 안 나게 할 수 있습니다.
현재 포스팅에서는 백준에서 자바를 이용해 코드를 제출 할 때 기본으로 작성하는 형식 코드가 담겨있습니다.
BufferedReader, BufferedWriter 이용
예제입력
10 5
1 10 4 9 2 3 8 5 7 6
위와 같은 예제 입력의 경우 아래와 같이 BufferedReader 형식으로 사용할 수 있습니다.
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStreamReader;
import java.util.*;
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));
// BufferedReader: 입력을 한 줄씩 받아옴
// StringTokenizer: 문자열을 특정 구분자(delimiter)를 기준으로 토큰(token)으로 나누기 위한 유틸리티 클래스
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int[] list = new int[N];
for(int i=0; i<N; i++) {
list[i] = Integer.parseInt(st.nextToken());
}
bw.write(Integer.toString(N)); // bw 사용 시 무조건 String으로 변환해야 함
// BufferedWriter의 write 메서드는 int 타입의 값을 직접 쓸 수 없습니다.
// 따라서 Integer.toString(N)을 사용하여 int를 String으로 변환한 후에 BufferedWriter에 쓰는 것이 필요합니다.
br.close();
bw.close();
}
}
참고한 블로그는 더보기에 두었습니다.
728x90
반응형
'Study > 나름쓸모있는정보' 카테고리의 다른 글
IntelliJ에서 Github 연결하기(Github에서 README 추가한 경우) (0) | 2024.04.08 |
---|---|
10초만에 VSCode 언어 변경하기 (0) | 2022.07.04 |
깃허브(Github) 프로필 꾸미기(feat. README.md) (0) | 2022.06.14 |