seok9211   4년 전

런타임 에러가 발생할만한 부분은 배열 범위를 오버하는 경우밖에 없는것같고,

원래 max 값을 INT_MAX 로 처리했다가, 검색좀 해봐서 숫자로 수정했는데도 런타임 에러가 뜨네요.

예제는 결과가 나옵니다.

뭐가 문제일까요?;;

djm03178   4년 전

배열의 크기가 10만인데 max가 20만이니 100001~199999는 모두 배열의 범위를 벗어납니다.

seok9211   4년 전

@djm03178

max의 값을 2백만으로 올려주는 방법을 선택했는데도 동일한 런타임 에러가 나는데 추가적으로 수정하거나 잘못생각한 부분이 있나요?

djm03178   4년 전

max가 커져야 하는 게 아니고 더 작아져야 합니다. 지금 코드의 로직을 보면, 방문하려는 좌표가 max보다 작으면 check와 dist 배열의 해당 좌표에 접근하고 있습니다. 예를 들어서, 좌표 15만에 방문하려고 하면 15만은 max보다 작으니까 check[150000]과 dist[150000]에 접근하게 되는데, 이 둘 모두 배열의 범위를 벗어납니다.

seok9211   4년 전

@djm03178

감사합니다. 이해가 됬어요!

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