C99로 그대로 제출하니까 맞았습니다를 받습니다.
18870번 - 좌표 압축
일단 자체 해결에 성공했습니다.
동적할당의 크기 때문에 메모리 초과가 나는건 아니라는 판단에서 다른 경우의 수를 찾아보고, 의심해보니
이진탐색에서 재귀함수를 사용할 때 n이 커지면 메모리에 많은 부담을 주지 않을까 하는 판단이 들었습니다.
이진탐색을 재귀함수 형식이 아니라 while 반복문 형태로 만들어주니까 정상적으로 문제가 풀렸습니다.
@rhdqor213 오 그렇군요. C99에서 성공하는 것은 또 왜일까요? 할당된 메모리 조건이 다른건지..
댓글을 작성하려면 로그인해야 합니다.
0207free 2년 전
힙소트로 주어진 배열을 정렬한 후
정렬된 배열에서 중복된 수를 제거하고
이진탐색으로 크기 순서를 받아와 출력했습니다.
지금 이 코드는 '메모리 초과'가 뜨고 있는데
문제의 N의 최대값이 1,000,000이므로
int 배열 3개를 동적할당 시켰다고 하더라도
4 x 1,000,000 x 3 = 12MB니까
512MB인 메모리 조건보단 훨씬 작은것 아닌가요?
메모리 초과가 왜 나는지 알려주시면 정말 감사하겠습니다.