백준 문제를 풀다가 시간 초과가 나는 경우가 종종 있는데, 그때 마다 매우 많은 입력, 출력에 시간을 많이 소모한 것이 원인인 적이 많다.
아래와 같이 입력, 출력을 한다면 적은 시간이 걸릴 것이다.
ArrayList<Time> times = new ArrayList<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // BufferReader 선언
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // BufferWriter 선언
int tc = Integer.parseInt(br.readLine()); // br.readLine()를 통해 1 줄 입력을 받음.
for(int i = 0; i < tc; i++) {
String[] input = br.readLine().split(" "); // split(" ")를 통해 1 줄 안에 입력 구분.
int idx = Integer.parseInt(input[0]);
int s = Integer.parseInt(input[1]);
int e = Integer.parseInt(input[2]);
times.add(new Time(idx, s, e));
}
for(int i =0; i < tc; i++){
bw.write("test 1" + "\n"); // 출력할 내용을 저장
}
bw.flush();// flush()를 통해 저장된 내용을 한번에 모두 출력
참고
https://sjs2215.tistory.com/93
[JAVA] 알고리즘을 최적화 해보자
1. Scanner 입력 대신 BufferedReader를 사용하자 왜? 효율면에서 훨씬 굳 (입력값이 많을수록) BufferedReader는 데이터를 사용자가 요청할 때마다 '매번' 읽어오기 (X) 일정량 사이즈로 '한 번에' 읽어온 후
sjs2215.tistory.com
'JAVA' 카테고리의 다른 글
JAVA - String과 StringBuiler는 어떻게 다른가 (2) | 2024.11.14 |
---|---|
자바 StringBuilder를 통해 빠르게 출력하기 (0) | 2021.12.08 |
자바기본개념 - 자바가상머신 및 가비지 컬랙션 (0) | 2021.10.22 |
자바 핵심 기본 내용 (0) | 2021.10.17 |
java - Priority Queue(우선순위 큐) (0) | 2021.10.05 |