속도제한이 있는 문제를 풀고 있었는데 Scanner를 썼을 때 해결이 안되는 일이 발생함
그래서 답을 확인해보니까 BufferedReader를 쓰라고 함.

BufferedReader 이름이 너무 길어서 거의 안썼는데 장점이 있나봄
이 둘의 차이점을 확인해보니까
| 속도 | 상대적으로 느림 (내부적으로 파싱 작업 수행) | 빠름 (버퍼를 사용하여 데이터를 한 번에 읽음) |
| 입력 방식 | next(), nextInt(), nextDouble() 등 다양한 메서드 제공 | readLine()을 사용해 한 줄을 읽고 직접 파싱해야 함 |
이런 차이가 있었음
✅ Scanner가 유리한 경우
- 정수, 실수, 문자열을 간편하게 입력받을 때
- 공백 단위로 여러 개의 값을 입력받을 때
- 간단한 프로그램에서 빠르게 구현할 때
✅ BufferedReader가 유리한 경우
- 대량의 데이터를 읽어야 할 때 (입출력 성능이 중요할 때)
- 파일에서 빠르게 데이터를 읽어야 할 때
- 한 줄 전체를 읽고 직접 가공해야 할 때
그래서 BufferedReader가 빠른이유가 buffer 때문이라는데
버퍼(Buffer)란?
- 데이터를 한 번에 읽거나 쓸 수 있도록 임시 저장 공간을 제공하는 메모리.
- 작은 단위로 여러 번 입출력을 하면 성능이 떨어지므로, 큰 덩어리로 처리해서 속도를 높임
Scanner는 공백이나 개행 단위로 토큰을 분석하면서 읽고 BufferedReader는 한 줄 전체를 한 번에 읽어서 빠르다고 함
8배정도 빠르다고 한다...