보통 백준에서 자바로 풀때 입력 많으면 시간초과때문에 Scanner 대신 BufferedReader를 쓴단 말이지?
근데 예를 들어서 n이 있고 n만큼 숫자 2개가 주어지는 문제가 있다고 가정해볼게
만약 n=3이면
3
1 2
2 4
3 6
이런식으로 주어지는거지
여기서 궁금한게 그럼 BufferedReader를 쓴다고해도 결국 숫자 2개당 어떤 처리를 해줘야하는데
그럼 여기서 IO가 발생할거고 그럼 속도 차이가 크게 없지 않아?
예를 들면 1 2 3 4 5 6 .... 이렇게 한줄에 주어지는거면 버퍼쓰는게 확실히 빠를거같은데
맨 처음예제처럼 주어지는거면 별 차이 없을거같은데 사실은 아니란말이지?
내가 뭔가 놓치고있는게 있는거같은데 설명가능한사람?
ㄴㄴ 버퍼링을 한 줄을 하는 게 아니고 8K 만큼씩 하기 때문에 저 내용 전체가 메모리에 버퍼링되고 그러면 빠름
근데 그렇게 묶어서 버퍼처리를 해버리면 숫자2개 받을때마다 코드에서 어떤 처리를 해줘야하는데 이걸 어떻게 처리해줌?? 컴파일러에서 알아서해주는건가
ㅇㅇ 뭐 split 하고 쇼를 해야 하는데 그래서 난 그냥 스캐너에 버퍼링 감싼 System.in 넣으면 문제 없을 거라고 봄 내가 코테 전문으로 뛰진 않아서 아닐 수는 있지만
후자는 읽기 처리 읽기 처리 하는거라, 읽기 읽기 처리 처리하는 전자가 값이 많아질수록 빠름. 오히려 값이 적을땐 별 차이 없는거고