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));
int n = Integer.parseInt(br.readLine());
StringTokenizer st;
for(int i=0;i<n;i++) {
st = new StringTokenizer(br.readLine(), " ");
bw.write((Integer.parseInt(st.nextToken()) + Integer.parseInt(st.nextToken()))+ "\n");
}
br.close();
bw.flush();
bw.close();
}
}
왜 BufferedReader를 사용하는가?
기존 Scanner 방식은 키보드 입력과 동시에 이 데이터를 프로그램에 전달한다.
BufferedReader는 쓰레기통이 다 찰때까지 모았다가 쓰레기를 버리러 나가는 것 처럼
버퍼에 데이터를 모아서 한번에 전달한다.
이런 차이 때문에 많은 양의 데이터를 다룰 때 속도 차이가 발생하게 된다.
main에 throws IOexception을 붙여 try catch문으로 예외를 검출하는 수고를 덜었다.
BufferedReader와 BufferedWriter 생성자를 선언해주고
BufferedReader는 무조건 String 형으로 받는 특징이 있기 때문에 Integer.parseInt로 형변환 해 주었다.
공백을 기준으로 구별하는 nextInt의 기능을 구현하기 위해
공백을 기준으로 StringTokenizer를 사용하였다.
참고 :
[백준] 15552번 : 빠른 A+B - JAVA [자바]
https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmic
st-lab.tistory.com
https://rlakuku-program.tistory.com/33
[Java] 빠른 입출력을 위한 BufferedReader, BufferedWriter, StringTokenizer, StringBuilder
BufferedReader / BufferedWriter BufferedReader와 BufferdWriter는 버퍼를 사용하여 읽기와 쓰기를 하는 함수이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다.
rlakuku-program.tistory.com
'백준 단계별' 카테고리의 다른 글
[Java] 백준 10952: A+B - 5 (0) | 2023.01.04 |
---|---|
[Java] 백준 2438: 별 찍기 - 1 (0) | 2023.01.04 |
[Java] 백준 25304: 영수증 (0) | 2023.01.04 |
[Java] 백준 8393: 합 (0) | 2023.01.04 |
[Java] 백준 10950: A+B-3 (0) | 2023.01.04 |