jjohye11   8년 전

비쥬얼스튜디오에서는 정상적인 결과를 내는데

제출만하면 런타임 에러가 뜹니다

왜 그런건가요 ㅠㅠ?


도와주세요.........

h0ngjun7   8년 전

제가 무엇을 고쳤는지 보고 참고하시면 되겠습니다.

jjohye11   8년 전

appa님 답변 정말 감사합니다!

답변해주신 소스를 제가 틀린 소스와 한줄한줄 비교하며 살펴보았습니다.

그 중에서 몇가지 이해되지 않는 부분이 있어서 다시 여쭈고자 합니다!


1. 큐의 크기를 크게 잡는 이유는 무엇인가요? 

(큐의크기를 [100][2]로 하니 틀린 답이라고하고, [101][2]로하니 또다시 런타임 에러가 나더군요 ㅠ)


2. visit[cur.x][cur.y] = 1로 하면 왜 컴파일 에러가 나는건가요?

 큐의 front에 위치한 x,y정보를 dequeue하고서 들렀다는 의미로 ture(visit[cur.x][cur.y] = 1)을 넣은 것인데  

어느 부분이 잘못된 것인가요?


3.if (!(0<=next.x && next.x<N && 0<=next.y && next.y<M)) continue; 은 왜 필요한가요?

N*M범위를 벗어나는 부분은 모두 if문의 조건을 만족하지 않기 때문에 답에 지장이 없을 것 같은데

왜 넣는 것인가요?


아직 코딩실력이 많이 부족한 학생입니다.ㅠㅠ

부탁 드립니다!  

h0ngjun7   8년 전

1. 큐에 들어가는 원소의 개수가 100*100개 이하이기 때문입니다.

2. 질문을 잘 이해하지 못하겠습니다. 원래의 코드 기준으로 말씀드리면, 큐에 어떤 좌표 (x, y)에 대한 정보를 이미 넣어두었는데 visit 배열이 갱신되지 않아서 또 다시 반복해서 넣는 경우를 막고자 하였습니다.

3. 음수 좌표를 참조하는 경우 런타임 에러가 발생할 수 있습니다. 혹은 쓰레기값 참조.

jjohye11   8년 전

2번 설명이 너무 장황했네요; 말씀해주신 내용이 제가 궁금해하던 부분에 대한 답이네요 

appa님의 답변이 큰 도움이 되었습니다

감사합니다^^

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