1005번 - ACM Craft
전역으로 빼세요.
근데 전역으로 빼면.. 시간초과네요.
전역변수 쓰신거 다시 지역으로 넣어도 맞을겁니다.
아마 VS를 쓰시는것 같은데 간단히 말씀드리면
지역 변수는 힙 메모리를 사용하고 전역 변수는 스택 메모리를 사용합니다.
근데 힙 메모리의 제한이 VS에선 굉장히 적습니다.
해결법은 애초에 전역변수로 코딩하시거나
VS 메뉴에서
프로젝트 - [파일명] 속성 - 좌측메뉴에 링커 - 시스템
가셔서 '힙 예약 크기' 부분을 바꿔주시면 됩니다.
일반적인 문제의 메모리제한이 256MB정도니
1024*1024*256 = 268435456
이라고 넣고 돌리시면 지역 변수에서도 큰 배열의 선언이 가능합니다.
참고로 이는 VS 기본 설정의 문제고, 백준 저지 시스템은 VS로 돌아가는 게 아니라서 그냥 지역에다가 큰 배열 잡고 제출해도 통과됩니다.
댓글을 작성하려면 로그인해야 합니다.
kysloves 6년 전 2
[알고리즘 설명]
다이나믹 프로그래밍으로 풀었습니다. 그런데 37행의 int adjMat[1001][1001] 때문에 계속 프로그램 오류창이 뜹니다. 동적할당으로 방법을 바꿔서 했더니 제대로 실행되고 예제도 다 맞게 나왔지만 백준에선 런타임 에러에 걸려버렸구요. 혹시나해서 아래코드도 제출해보니 역시 런타임에러라고 뜨네요 ..
[궁금한 것]
저 adjMat[1001][1001]의 선언에서 계속 오류가 나는 것 같아요. (다른 소스코드에서 시도해봤는데 [501][501] 크기까진 커버가 돼도 [1001][1001]로 범위가 커지니까 바로 프로그램 오류가 나더라구요.)
저렇게 커다란 2차원 배열은 어떻게 코드를 짜줘야할까요?
고수님들의 의견을 구합니다 ㅠㅠ