tiro25   3년 전

제출번호 26266778

이게 왜 메모리 초과가 나오나요?

재채점했다는 글은 봤는데 이렇게 풀면안되나요?

djm03178   3년 전

출력하는 결과의 양이 너무 많기 때문에 StringBuilder에 전부 담아서 한 번에 출력하려고 하면 안 됩니다. 대신 BufferedWriter에 바로바로 출력하는 방법을 써보세요.

tiro25   3년 전

@djm03178

덕분에 해결했습니다.

다른분 코드라 들고올순 없었지만 같은 방법에 StringBuilder를 사용했는데 메모리 초과가 나지 않은 코드도 있는더라고요

혹시 이유 아시나요?

djm03178   3년 전

그 코드가 뭔지 보여주셔야 알 것 같습니다. 다만 확실한 건 이 문제에서는 입력이나 출력 전부를 저장해두는 과정을 원하지 않고 그 의도가 메모리 제한에 드러나 있으며, 통과되는 방법이 있다면 그건 언어별 메모리 보너스가 모든 언어에 대해 공평할 수 없어서 그럴 수 있다는 것입니다.

tiro25   3년 전

같은 자바8로 제출된 코드에요.

출력부분을 제외하고는 다 똑같다고 생각해서요.

다른분 코드다 보니 문제시 삭제하겠습니다

djm03178   3년 전

StringBuilder가 아니라 StringBuffer를 사용했네요. 둘이 어떻게 다른지는 잘 모르겠지만 아마도 String 객체를 매번 만들어 넘기지 않는다는 점이 제일 큰 차이이지 않을까 싶습니다.

tiro25   3년 전

계속 불러서 죄송해요.. 잘못된 예를 가져왔어서 제대로 찾아보고 왔어요

제출번호: 25879322

djm03178   3년 전

여기도 비슷하네요. String 객체를 만들어서 보내는 대신에 int값 자체와 char형인 '\n'을 보내고 있고 그게 큰 차이가 나는 것 같습니다.

tiro25   3년 전

이제 이해가 됐네요 감사해요

StringBuilder에서 append할때 나눠서 보내야겠네요.

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