1874번 - 스택 수열
출력 초과가 계속 나오는데 어떤 이유인지 알려주시면 정말 감사합니다. ㅠㅠㅠ
아무리해봐도 전체적으로 정상적으로나오는데 출력 초과가 나옵니다..
https://www.acmicpc.net/board/...
이 글을 이미 읽어 보았었지만
어떻게해도 +,-와 NO가 같이 나올 수는 없는 상황인 것 같습니다..ㅠㅠ
그러면 그 뒤에, 불가능한 경우를 잘못 판단한 거라고 쓰여 있습니다.
질문 게시판에 있는 반례들은 모두 넣어보셨나요?
물론 넣어보았으나 다 제대로 나옵니다.
지금 출력 부분을 단순히 Stringbuilder를 이용하여 변경해 출력했더니 맞힌걸로 나오네요..
코드를 제대로 읽어보지 않았었는데, BufferedWriter를 2개 만드는 게 문제인 거 같네요. 하나의 객체만 가지고 처음부터 끝까지 사용해야 합니다.
어떤 상황이냐면, 이미 첫번째 BufferedWriter를 통해 +와 -들이 잔뜩 쓰여진 상황에서 갑자기 새로운 걸 만들어서 NO만 쓰려고 했지만, 이미 기존의 내용들이 출력 스트림으로 넘어갔기 때문에 출력 촐과가 됩니다.
그리고 손으로 넣어보는 수준에서는 아마도 이런 현상을 보기 어려웠을 것이, BufferedWriter의 경우 일정한 버퍼 크기를 가지고 출력할 내용물이 버퍼를 가득 메울 때까지는 실제로 출력을 하지 않고 있지만, 버퍼의 크기를 초과해서 더 write를 하려는 경우 스스로 flush를 해서 출력을 다 시키고 다음 내용을 버퍼에 저장하게 됩니다. 이 버퍼의 크기가 꽤 크기 때문에, 직접 넣어보는 입력 정도로는 버퍼를 가득 메울 일이 없었겠네요.
앗 그렇군요 정말 감사합니다. 정말 진짜 큰 도움이 된 것 같네요..
감사합니다~!!
댓글을 작성하려면 로그인해야 합니다.
tnvjdydtjr 5년 전
출력 초과가 계속 나오는데 어떤 이유인지 알려주시면 정말 감사합니다. ㅠㅠㅠ
아무리해봐도 전체적으로 정상적으로나오는데 출력 초과가 나옵니다..