grace   6달 전

visual studio로 돌렸을 때는 아무런 에러 없이 돌아가는데

제출을 하면 런타임 에러로 나옵니다.

같은 문제로 질문을 올린 사람들 글을 보니 큐 범위가 더 커야된다고 해서 키워봤지만 

똑같이 런타임 에러로 나옵니다.

어떤 문제점이 있는건가요?

고수님들 답변 부탁드립니다.

pichulia   6달 전

while ((posX < M-1 || posY < N-1)){}

이 while문을 빠져나가지 못하고있어요

grace   5달 전

pichulia님 답변 감사합니다.

제가 예제 입력 1,2번을 했을 때는 모두 빠져나가는데, 어떤 값을 입력 하셨나요?

한가지 더 질문이 있습니다. 

예제 입력 2번에서 

110110

110110

시작점을 (0,0) 으로 봤을 때, (1,1)점 1은 (0,1)의 오른쪽이기 때문에 Enqueue / (0,1)의 왼쪽이라 Enqueue 이렇게 2번 Enqeuue 되어야 하나요? 

(이런 방식으로 하면 예제입력2번을 입력하면 Enqueue는 총 66번 하게 됩니다.)

저는 모든 경로를 구하는 코드로 작성했습니다. 

답변 기다리겠습니다. 감사합니다 ^^

grace   5달 전

아아.. 댓글중에 잘못 작성한 부분이 있네요.. 댓글 수정이 안되네요.

시작점을 (0,0) 으로 봤을 때, (1,1)점 1은 (0,1)의 오른쪽이기 때문에 Enqueue / (1,0)의 아래쪽이라 Enqueue 이렇게 2번 Enqeuue 되어야 하나요?

이렇게 정정합니다.

zlzmsrhak   5달 전

30, 34, 38, 42번째 줄에서 새로운 위치가 아닌 예전 위치를 체크해줬는데 의도하신건가요?

pichulia   5달 전

음 제가 문제를 잘못봤었네요.. 경로가 반드시 존재하게 들어온다니..

zlzmsrhak 님이 말씀하신 대로네요. 

(1,1) 에 enqueue가 2번 되고있던게 문제입니다. 똑같은 위치를 여러번 접근하게 되면...que배열 사이즈가 턱없이 부족해지죠.. 1밖에 없는 배열을 생각해보시길...

grace   5달 전

BFS는 점에 연결된 모든 좌표를 방문해야 하는줄 알고

방문한 좌표까지 다시 방문했는데 그게 아니군요. 

그리고 '0'을 대입하는 좌표는 새로운 위치에 넣어야 되네요.

두 분의 답변을 참고해서 풀었습니다.

zlzmsrhak, pichulia 님 감사합니다.

ps 아이디 태그는 어떻게 하는건가요?

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