BufferedReader

·TIL,일일 회고
개요Java 알고리즘 문제 풀이에서 Scanner로 입력을 받다가 시간 초과가 발생할 때, BufferedReader 클래스로 변경하면 해결되는 경우가 있습니다. BufferedReader 클래스는 버퍼를 이용해 입력을 한 번에 읽어오기 때문에 Scanner보다 빠른 것으로 알려져 있습니다. 하지만 BufferedReader는 String으로 입력을 받아 정수로 형변환이 필요하므로, 단일 정수나 적은 양의 정수 입력에서는 Scanner가 더 빠를 것이라는 의문이 있었습니다. 본 글에서는 적은 양의 정수 입력에서도 BufferedReader가 실제로 더 빠른지 코드를 통해 검증해보겠습니다. BufferedReader 클래스와 Scanner의 차이 위 그림에서 알 수 있듯이, Scanner는 데이터를 읽을 ..
·TIL,일일 회고
개요코딩 테스트를 준비할 때 입력을 받을 때 Scanner와 BufferedReader를 사용해서 입력을 받습니다. BufferedReader는 Scanner보다 속도가 빠르고 안전하다는 장점이 있지만, 문자열로만 입력을 받기 때문에 정수 사용 시 형변환이 필요하고 반드시 예외처리를 해야 합니다. 이번 글에서는 BufferedReader를 사용할 때 왜 예외처리가 필요한지, 그리고 어떻게 처리해야 하는지 알아보겠습니다.  IOException이란 ❓IOException이란 입출력 작업 중 발생할 수 있는 예외를 의미합니다.발생하는 경우 파일을 읽거나 쓸 때네트워크를 통해 데이터를 주고받을 때키보드 입력을 받을 때BufferedReader에서 IOException가 필요한 이유 ❓ BufferedReade..
·Coding Test/백준
▶ BufferedReader, StringTokenizer, StringBuilder를 활용한 간단한 문제가 있어 정리해보고자 합니다.  문제설명입력 & 출력나의 풀이 문제 설명에서도 나왔듯이 Scanner와 for문 안에서 System.out.println()을 사용하면 시간초과가 납니다. 그렇기 때문에 BufferedReader를 사용해야 합니다. 먼저 BufferedReader 클래스를 선언해 주고, InputStreamReader를 사용하여 객체를 만들어줍니다. 각 피스의 개수를 입력받아 token 변수에 저장해 주고, 각 문자열을 더해줄 StringBuilder 클래스의 sb변수를 초기화해 줍니다.  StringTokenizer 클래스도 선언해 주고 for문안에서 입력을 받아 공백을 기준으로 ..