qls0860   4년 전

냅색 문제랑 퇴사 문제랑 유형이 똑같은 거 같은데

이차원 배열로 하는 게 아닌가요?

왜 메모리 초과가 나는 거죠?

wjsqjawns   4년 전

n이 최대 100, m이 최대 10,000,000이라 32번째 줄에서 배열을 할당할 때 메모리 에러가 발생하네요.

배열이 너무 커요.

qls0860   4년 전

실제로 할당을 해보니까 에러는 안나더라고요; 다른 풀이 방법이 있나보군요

djm03178   4년 전

에러는 그만큼의 메모리를 할당할 수 없을 때 나는 거고, 로컬에 별도의 제한을 설정해두지 않았다면 나지 않을 수도 있습니다. 물리적으로 할당할 공간이 충분하다면요.

하지만 문제에는 메모리 제한이 있으니 채점 서버는 그 제한을 넘어서 메모리를 할당하려고 하면 메모리 초과를 발생시킵니다. 100 * 10000000개의 int를 할당하려면 약 4GB나 메모리가 필요하기 때문입니다.

quf9484   2년 전

@djm03178 

항상 친절하게 알려주셔서 감사하고 있습니다.

궁금한 점이 있습니다.

최악의 경우는 100 * 10000000의 int를 할당하는 4GB인데, 최악의 경우가 인풋으로 들어온다고 예상하고 할당해야 하는 것 아닌가요?

quf9484   2년 전

자문자답 하겠습니다!

메모리 초과가 나기 때문에, 앱 메모리의 총합이 아닌 코스트의 총합으로 풀어야 하군요!

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