BufferedWriter는 write()의 인자로 들어온 문자열을 버퍼에 쌓아두다가 flush()가 호출되면 로 버퍼를 비우고 출력합니다.
그런데 버퍼가 꽉차면 flush()를 호출하지 않아도 자동으로 버퍼를 비우고 출력합니다.
이 문제는 문자열을 모아두다가 모아둔 문자열을 출력할지, 아니면 단순히 NO를 출력할지 결정해야합니다.
NO라는 딱 한 줄 짜리를 출력해야 정답인데, 버퍼가 꽉차서 출력해버린다면 출력 초과가 나겠죠.
"버퍼가 꽉차면 출력해버린다" 이 사실을 알면 언제 BufferedWriter를 쓸지, 언제 쓰면 안될지 구분이 되실 것 같습니다.
ggk 2년 전
9093번(단어뒤집기)는 BufferedReader로 풀어야 하고(Scanner로 풀면 메모리 초과 에러)
1874번(스택수열)은 StringBuilder로 풀어야 합니다(BufferedReader로 풀면 출력횟수 초과 에러).
1874번의 경우 왜 BufferedReader로 풀면 안되는건지, 풀면 안된다는 이유를 문제에서 어느 문구로 판단해야하는지 궁금합니다.
감사합니다.