IT 일기장

[백준] BufferedReader, BufferedWriter 본문

백준

[백준] BufferedReader, BufferedWriter

뽕슈 2021. 12. 8. 23:05
반응형

백준 사이트에서 문제풀던 , Scanner 입출력하는 방식이 아닌

BufferedReader, BufferedWriter 입출력하는 방식을 발견했다.

이를 이용하면 입출력 속도가 Scanner 1.6초정도 나오는데 Buffered 이용하면 1초정도 나온다..

신기해서 정리해봤다. 다만 사용시 유의할점이 있다.

 

  1. try ~ catch 예외처리 필수다.
  2. 밑에 예제처럼 처리할 경우 공백("") 구분자인 StringTokenizer 필요하다.
  3. buffered 함수 처리를 완료했으면 close() flush() 함수를 반드시 써야된다.

 

(수정) 밑에 System.out.println으로 출력을 해보니 시간 초과로 통과하지 못했다.

이걸 bw.write() 바꿔서 출력해줬더니 통과했다. 확실히 속도차이가 나는걸 느끼네

 

test.java

		try {

			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

			int a = Integer.parseInt(br.readLine());

			for(int i=1 ; i<=a ; i++) {
				StringTokenizer st = new StringTokenizer(br.readLine());
				int num1 = Integer.parseInt(st.nextToken());
				int num2 = Integer.parseInt(st.nextToken());
				System.out.println(String.valueOf(num1+num2));
			}
			br.close();
			bw.flush();
			bw.close();

		} catch (NumberFormatException | IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

결과값

5
2 3
5
11 12
23
55 87
142
99 87
186
99 99
198

 

반응형

'백준' 카테고리의 다른 글

[백준] 1546번 : 평균  (0) 2021.12.27
[백준] 11720번 : 숫자의 합  (0) 2021.12.18
[백준] 2577번 : 숫자의 개수  (0) 2021.12.18
[백준] Arrays  (0) 2021.12.16
Comments