cocogod   7년 전

그다음가야할 곳이 1 이면 있던값과 비교하고

0이면 그전값을 그대로 가저가는 BFS를 사용하였습니다.

값은 잘 나오는듯하나 메모리 문제로인해 통과를 하지 못하는군요....

제생각엔 큐에 많이 들어가다보니 메모리 문제 걸린듯 합니다.

이러면 DP를 써야할듯 한대 감이 안잡힙니다...

조금만 힌트를 나누어주세요 ㅠ

joonas   7년 전

v[row][col]+1 을 함께 큐에 넣어보는건 어떨까요. 그리고 그것이 가장 작은것을 먼저 살피도록이요.

cocogod   7년 전

@joonas 우선순위큐를 이용하여 v[row][col]값이 작은것부터 꺼내서

비교하였습니다. 어차피 v값이 작은것 부터 확인하므로 한번방문한곳을 다시

방문안하게 해서 코드를 짯더니  74퍼에서 틀렷습니다. 가 나왔습니다.

제생각이 틀린것 인가요?

joonas   7년 전

생각은 맞는 것 같은데 74퍼라면 코드를 봐야할 것 같네요.

근데 출력하실때 printf("%d", v[n][m]); 가 아니라 근처를 하신 이유가 있나요?

cocogod   7년 전

@joonas 마지막은 무조건0이다 라는것때문에 근처만 확인해서 작은것을 확인했습니다.

그런대 printf("%d",v[n][m])하니 정답이내요!

감사합니다! ㅎㅎ

joonas   7년 전

처음에 초기화 하신거때문에

for(int i=0;i<105;i++)
        for(int j=0;j<105;j++)
            v[i][j] = INF;

아래 입력에서는 INF 가 나올것 같네요

1
0

해결되었다니 다행입니다! ㅎㅎ

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