알고리즘 문제를 풀다보면 Scanner로 인한 입력으로 인해 시간초과가 발생하는 경우가 있다.
BufferReader와 BufferedWriter를 통해 빠른 입출력을 받는 방법을 알아보았다.
*BufferedReader
Scanner는 단순히 한줄짜리 선언에, nextInt(); 를 통해 알아서 다음 공백 공백을 입력받기 때문에 어려움 없이 사용할 수 있지만, 많은 량의 데이터를 입력받을때는 BufferedReader를 사용하는 것이 시간을 절약할 수 있다.
따라서 StringTokenizer를 이용해야한다.
또 기본적으로 String형으로 반환되기 때문에 ParseInt 를 이용해야 한다.
#IOException 필수로 예외처리 해줘야한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Int N = Integer.ParseInt(st.nextToken());
*BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("안녕! \n"); 출력 후,
bw.flush();
bw.close();
flush와 close를 써주지 않으면 출력오류가 발생할 가능성이 있다.