java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader
와 BufferedWriter
를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.
또한 입력과 출력 스트림은 별개이므로, 테스트 케이스를 전부 입력 받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트 케이스를 하나 받은 뒤 하나 출력해도 된다.
[입력]
첫 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1이상, 1,000 이하이다.
[출력]
각 테스트 케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.
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 T = Integer.parseInt(br.readLine()); // readLine이 String으로 읽는다.
for (int i = 0; i < T; 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();
}
}
BufferedReader
클래스 사용 방법
BufferedWriter
클래스 사용 방법
=> 해당 객체 생성 후 new Input or Output
br.readLine()
: 한 줄 읽어오는 것은 String으로 값이 넘어가기 때문에 변환해야 한다.
StringTokenizer
: 한 줄씩 가져와서 nextToken()
으로 각각 해당 변수에 넣어주기.
bw.flush()
: 값을 저장해놓고, 한 번에 출력