alphago159   6년 전

메모리 초과가 나와서 코드를 수정했는데도 여전히 메모리 초과가 나와서 질문 드립니다.

어디서 메모리가 초과되는지 잘 모르겠습니다.

제 생각에는 재귀함수를 호출할 때, 메모리 중 스택부분이 초과하는 것 같습니다만 확실하지도 않고,

어떻게 해결해야 할 지도 모르겠습니다. 

djm03178   6년 전

모든 칸에 대한 블럭을 할당하신 것 같은데, N=15인 경우 약 10억 칸 정도가 나오고, 1바이트씩으로 계산해도 1GB에 이릅니다. 심지어, 할당 방법도 잘못됐습니다. 40번째 줄에서, block형이 size개만큼 할당되는 것이 아니라 block의 포인터를 size개만큼 할당하고 있으니 무려 8배나 더 할당됩니다.

이 문제에서는 나눠놓은 4군데를 모두 방문할 필요가 없습니다. 4분면의 어느 위치에 원하는 값이 있을지를 바로 알아내서 그 곳만 방문할 수 있습니다. blocks라는 배열을 만들 필요가 없는 것입니다.

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