tnvjdydtjr   5년 전

출력 초과가 계속 나오는데 어떤 이유인지 알려주시면 정말 감사합니다. ㅠㅠㅠ

아무리해봐도 전체적으로 정상적으로나오는데 출력 초과가 나옵니다..

tnvjdydtjr   5년 전

이 글을 이미 읽어 보았었지만 

어떻게해도 +,-와 NO가 같이 나올 수는 없는 상황인 것 같습니다..ㅠㅠ

djm03178   5년 전

그러면 그 뒤에, 불가능한 경우를 잘못 판단한 거라고 쓰여 있습니다.

질문 게시판에 있는 반례들은 모두 넣어보셨나요?

tnvjdydtjr   5년 전

물론 넣어보았으나 다 제대로 나옵니다.

지금 출력 부분을 단순히 Stringbuilder를 이용하여 변경해 출력했더니 맞힌걸로 나오네요..


djm03178   5년 전

코드를 제대로 읽어보지 않았었는데, BufferedWriter를 2개 만드는 게 문제인 거 같네요. 하나의 객체만 가지고 처음부터 끝까지 사용해야 합니다.

어떤 상황이냐면, 이미 첫번째 BufferedWriter를 통해 +와 -들이 잔뜩 쓰여진 상황에서 갑자기 새로운 걸 만들어서 NO만 쓰려고 했지만, 이미 기존의 내용들이 출력 스트림으로 넘어갔기 때문에 출력 촐과가 됩니다.

djm03178   5년 전

그리고 손으로 넣어보는 수준에서는 아마도 이런 현상을 보기 어려웠을 것이, BufferedWriter의 경우 일정한 버퍼 크기를 가지고 출력할 내용물이 버퍼를 가득 메울 때까지는 실제로 출력을 하지 않고 있지만, 버퍼의 크기를 초과해서 더 write를 하려는 경우 스스로 flush를 해서 출력을 다 시키고 다음 내용을 버퍼에 저장하게 됩니다. 이 버퍼의 크기가 꽤 크기 때문에, 직접 넣어보는 입력 정도로는 버퍼를 가득 메울 일이 없었겠네요.

tnvjdydtjr   5년 전

앗 그렇군요 정말 감사합니다. 정말 진짜 큰 도움이 된 것 같네요.. 

감사합니다~!!

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