10989번 - 수 정렬하기 3
제출번호 26266778
이게 왜 메모리 초과가 나오나요?
재채점했다는 글은 봤는데 이렇게 풀면안되나요?
출력하는 결과의 양이 너무 많기 때문에 StringBuilder에 전부 담아서 한 번에 출력하려고 하면 안 됩니다. 대신 BufferedWriter에 바로바로 출력하는 방법을 써보세요.
@djm03178
덕분에 해결했습니다.
다른분 코드라 들고올순 없었지만 같은 방법에 StringBuilder를 사용했는데 메모리 초과가 나지 않은 코드도 있는더라고요
혹시 이유 아시나요?
그 코드가 뭔지 보여주셔야 알 것 같습니다. 다만 확실한 건 이 문제에서는 입력이나 출력 전부를 저장해두는 과정을 원하지 않고 그 의도가 메모리 제한에 드러나 있으며, 통과되는 방법이 있다면 그건 언어별 메모리 보너스가 모든 언어에 대해 공평할 수 없어서 그럴 수 있다는 것입니다.
같은 자바8로 제출된 코드에요.
출력부분을 제외하고는 다 똑같다고 생각해서요.
다른분 코드다 보니 문제시 삭제하겠습니다
StringBuilder가 아니라 StringBuffer를 사용했네요. 둘이 어떻게 다른지는 잘 모르겠지만 아마도 String 객체를 매번 만들어 넘기지 않는다는 점이 제일 큰 차이이지 않을까 싶습니다.
계속 불러서 죄송해요.. 잘못된 예를 가져왔어서 제대로 찾아보고 왔어요
제출번호: 25879322
여기도 비슷하네요. String 객체를 만들어서 보내는 대신에 int값 자체와 char형인 '\n'을 보내고 있고 그게 큰 차이가 나는 것 같습니다.
이제 이해가 됐네요 감사해요
StringBuilder에서 append할때 나눠서 보내야겠네요.
댓글을 작성하려면 로그인해야 합니다.
tiro25 3년 전
제출번호 26266778
이게 왜 메모리 초과가 나오나요?
재채점했다는 글은 봤는데 이렇게 풀면안되나요?