gusals224   2년 전

    알고리즘은 다음과같습니다.

1부터 N까지 건물순서 중에 거꾸로 봤을때 두갈래인거

예를들어 

1 3 

2 3

인경우 

1       

        3

2

과같이 3을 만들기 위한 경우가 두갈래 이상인경우만 따로 배열에 저장해두고

3 1 

3 2

과같이 거꾸로 배열을 채운뒤 시간을 모두 합해보고 가장 많이걸리는 시간이

최종 걸리는시간으로 풀었는데요... 런타임에러가 자꾸 나오네요;;

Nada   2년 전

multi 배열이 multi[1001][100001] 의 크기를 잡으셨는데 이 경우에

heap 메모리 초과여서 런타임 에러가 발생합니다.

또한 전역변수로 배열을 잡으셔도 메모리 초과가 발생하겠네요. 

또한 memset(count,0,n*4); for(i=0;i<n+1;i++)  memset(multi[i],0,n*4); 

이 파트에서 multi[i]의 크기는 (k+1)*4인데 n*4로 하셨네요. 다시 말해 n < k 경우 

런타임 에러가 발생합니다.

추가적으로 memset(fin,0,sizeof(fin)*4); 이 아니라 memset( fin, 0, sizeof(fin) ); 

으로 하셔야 하고 이 역시 런타임 에러의 원인 같네요.

gusals224   2년 전

감사합니다. .ㅎㅎㅎ 배열 크기가 문제가 되는군요..코드를 다시 짜봐야 겠네요 ㅎㅎ 

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