[Java] 백준 15552번 - 빠른 A+B
Java의 빠른 입출력을 위해 BufferedReader, StringTokenizer, BufferedWriter를 사용하는 풀이를 정리했습니다.
For the English version of this post, see here.
[Java] 백준 15552번 - 빠른 A+B
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.io.*;
import java.util.StringTokenizer;
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));
int n = Integer.parseInt(br.readLine());
for(int i=0; i<n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
bw.write((a+b) + "\n");
}
bw.flush();
bw.close();
}
}
Java에서 많은 수의 입력과 출력이 있을 때
- Java에서는 기존에 사용하던
Scanner과System.out.print보다 BufferedReader + StringTokenizer + BufferedWriter를 사용하는 게 나음BufferedReader (입력)
- 빠르게 한 줄 읽기
- 사용:
import java.io.*; - 기본:
BufferedReder br = new BufferedReader(new InputStreamReader(System.in)); - 한 줄 입력:
String s = br.readLine();-> 문자열 - 숫자로 변환:
int n = Integer.parseInt(br.readLine());StringTokenizer (쪼개기)
split()보다 빠름, 공백 기준 분리기- 사용:
import java.util.StringTokenizer; - 기본:
StringTokenizer st = new StringTokenizer(br.readLine()); - 쪼개기:
int a = Integer.parseInt(st.nextToken());BufferedWriter (출력)
- 빠르게 출력
- 사용:
import java.io.*; - 기본:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); - 출력:
bw.write("hello\n");->write()안에는 문자열만 가능 - 마무리(필수):
bw.flush(); bw.close();-> 마지막 한번만 사용위 코드에서 write() 안에 문자열이 아닌 a+b가 들어갈 수 있는 이유
- Java에서
"문자열" + 숫자는문자열로 처리되기 때문에"\n"을 통해 문자열로 변환되므로 사용 가능
import java.io.*
- 입출력 관련 클래스 한 번에 가져오기 ex) BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter