728x90
반응형
문제
이 문제는 scanner를 사용하면 시간 초과로 틀리게 되는 문제입니다!
그래서 이 참에 BufferedReader와 BufferedWriter를 공부해볼까요?
BufferedReader와 BufferedWriter
scanner와 달리 Buffered~ 는 왜 시간면에서도, 메모리면에서도 우수할까요?
장점
- 버퍼가 있는 스트림이다.
- 별다른 정규식을 검사하지 않는다.
하지만 단점도 물론 있습니다.
- IOException의 예외처리가 필수적이다.
- 입력 받는 모든 데이터가 String으로 반환된다.
- 라인마다 입력받아서, 따로 split하여 데이터를 처리해주어야 한다.
- 숫자 형식으로 받기 위해서는 형변환이 필요하다.
좀 더 구체적으로, 깊게 공부하고 싶으신 분들은 아래 블로그를 참고해주세요.
자바 입력에 대해 자세하게 작성되어있는 글입니다.
정답 코드
// 필요한 import는 IDE에서 자동으로 추가해주니 크게 신경쓰지 않으셔도 됩니다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
// BufferedReader, BufferedWriter 모두 Scanner처럼 생성해주세요.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// BufferedReader로 받은 n값은 String이기 때문에 int형으로 형변환 해주세요.
int n = Integer.parseInt(br.readLine());
for(int i = 1; i <= n; i++){
String s = br.readLine();
int a = Integer.parseInt(s.split(" ")[0]);
int b = Integer.parseInt(s.split(" ")[1]);
bw.write(a+b+"\n");
}
// 다 사용하셨으면 각각 clsoe() 해주시고
br.close();
// flush의 경우 writer는 버퍼에 쓰는 것이지
// 화면에 출력하는 것은 아니기 때문에
// 화면 출력을 위해 작성합니다.
bw.flush();
bw.close();
}
}
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 2438번 별 찍기 -1 (0) | 2023.03.02 |
---|---|
[백준/Java] 11021번 A+B -7, 11022번 A+B -8 (0) | 2023.03.02 |
[백준/Java] 25314번 코딩은 체육과목 입니다 (0) | 2023.03.02 |
[백준/Java] 25304번 영수증 (0) | 2023.03.02 |
[백준/Java] 8393번 합 (0) | 2023.03.02 |