ggk   2년 전

9093번(단어뒤집기)는 BufferedReader로 풀어야 하고(Scanner로 풀면 메모리 초과 에러)

1874번(스택수열)은 StringBuilder로 풀어야 합니다(BufferedReader로 풀면 출력횟수 초과 에러).

1874번의 경우 왜 BufferedReader로 풀면 안되는건지, 풀면 안된다는 이유를 문제에서 어느 문구로 판단해야하는지 궁금합니다.

감사합니다.

fccva   2년 전

BufferedWriter는 write()의 인자로 들어온 문자열을 버퍼에 쌓아두다가 flush()가 호출되면 로 버퍼를 비우고 출력합니다.

그런데 버퍼가 꽉차면 flush()를 호출하지 않아도 자동으로 버퍼를 비우고 출력합니다.

이 문제는 문자열을 모아두다가 모아둔 문자열을 출력할지, 아니면 단순히 NO를 출력할지 결정해야합니다.

NO라는 딱 한 줄 짜리를 출력해야 정답인데, 버퍼가 꽉차서 출력해버린다면 출력 초과가 나겠죠.

"버퍼가 꽉차면 출력해버린다" 이 사실을 알면 언제 BufferedWriter를 쓸지, 언제 쓰면 안될지 구분이 되실 것 같습니다.

ggk   2년 전

이해했습니다. 감사합니다^^

댓글을 작성하려면 로그인해야 합니다.