pjk3015   4년 전

bfs를 사용하여 풀었는데 

어떠한 부분에서 오류가 났는지 모르겠습니다.

rnjstpgns91   4년 전

예제 3번 돌아가시나요 ?

어떤 프로그램으로 돌리시는진 모르겠지만 제가 비쥬얼로 했을때 예제3번이 돌아가지 않아서

해당 부분 해결하니 통과 됐습니다.

pjk3015   4년 전

@rnjstpgns91

visual studio code 로 돌리는데 3번포함 예제 모두 통과하네요..

if(next_x>0 && next_y>0 && next_x<=N && next_y<=M && visit[next_x][next_y]==0 && tomato[next_x][next_y]==0){
    q.push({next_x,next_y});
    tomato[next_x][next_y] = tomato[now_x][now_y]+1;
    visit[next_x][next_y]=1;
}

이부분도 잘못된거 같아

if(next_x>0 && next_y>0 && next_x<=N && next_y<=M){

        if(visit[next_x][next_y]==0 && tomato[next_x][next_y]==0){ 

               q.push({next_x,next_y}); 

               tomato[next_x][next_y] = tomato[now_x][now_y]+1; 

              visit[next_x][next_y]=1; 

         }    

}

이렇게 수정했는데도 또 틀렸다고 나오네요..

rnjstpgns91   4년 전

제가 고친 부분은 42번 줄에 fail이란 변수 초기화문제만 해결해주었습니다

초기화를 안해주면 57번줄에 안걸리고 65번에 해당하는 답이 나올 때 61번줄 if문에서 에러가 발생하는거 같아요

pjk3015   4년 전

@rnjstpgns91

정말 감사합니다. 초기화하니까 바로 맞네요..

그런데 bool fail; 로 선언하면 자동으로 false 로 초기화되는거 아닌가요??

그게아니더라도 왜 오류가 난 걸까요??

rnjstpgns91   4년 전

자동으로 0으로 초기화 되는거는 전역변수에 한해서 그렇고 위에 코드에선 지역변수로 선언해서 제대로 된 초기화가 안된거같아요.

오류가 난건 위에 말한대로 fail이라는 변수가 어떤 값인지 모르는 상태에서 if로 체크하려고 하니 발생한거 같네요.

pjk3015   4년 전

@rnjstpgns91

감사합니다 :)

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