하나의 테스트 케이스가 끝나고 다음 테스트 케이스로 넘어갈 때 new로 할당했던 메모리를 정리하지 않기 때문에 메모리가 초과된 걸로 보입니다.
10319번 - 좀비 아포칼립스
저는 Visual Studio가 아닌 다른 툴을 사용하고 있기 때문에 VS에서 어떻게 메모리 사용량을 파악할 수 있는지는 잘 모르겠습니다.
다만, Windows 에서는 작업 관리자 (taskmgr) -> 세부 정보 에 들어가면 각 프로그램의 현재 메모리 사용량을 대략적으로 알 수 있습니다.
물론, 개발 환경과 채점 환경이 다르기 때문에 BOJ에서 보는 메모리 사용량과는 크게 다를 수는 있지만, 상황 파악은 어느정도 할 수 있을 것입니다.
메모리 초과 관련 질문에 대한 답변을 해 줄 때는 먼저 프로그램의 공간복잡도를 계산해서 문제에서 요구한 메모리 제한에 맞출 수 있는지를 먼저 계산해 봅니다.
그 후, C/C++와 같이 garbage collector 가 없는 언어로 된 프로그램인 경우 동적 메모리 할당과 해제가 올바로 이루어졌는지를 확인합니다.
경험상 메모리 초과의 원인은 거의 대부분 이 두 가지 원인 중 하나(또는 둘 다) 였습니다.
댓글을 작성하려면 로그인해야 합니다.
dydsj0920 5년 전
메모리 초과를 발생시키는 예제를 만들기가 힘드네요..