1261번 - 알고스팟
그다음가야할 곳이 1 이면 있던값과 비교하고
0이면 그전값을 그대로 가저가는 BFS를 사용하였습니다.
값은 잘 나오는듯하나 메모리 문제로인해 통과를 하지 못하는군요....
제생각엔 큐에 많이 들어가다보니 메모리 문제 걸린듯 합니다.
이러면 DP를 써야할듯 한대 감이 안잡힙니다...
조금만 힌트를 나누어주세요 ㅠ
v[row][col]+1 을 함께 큐에 넣어보는건 어떨까요. 그리고 그것이 가장 작은것을 먼저 살피도록이요.
@joonas 우선순위큐를 이용하여 v[row][col]값이 작은것부터 꺼내서
비교하였습니다. 어차피 v값이 작은것 부터 확인하므로 한번방문한곳을 다시
방문안하게 해서 코드를 짯더니 74퍼에서 틀렷습니다. 가 나왔습니다.
제생각이 틀린것 인가요?
생각은 맞는 것 같은데 74퍼라면 코드를 봐야할 것 같네요.
근데 출력하실때 printf("%d", v[n][m]); 가 아니라 근처를 하신 이유가 있나요?
@joonas 마지막은 무조건0이다 라는것때문에 근처만 확인해서 작은것을 확인했습니다.
그런대 printf("%d",v[n][m])하니 정답이내요!
감사합니다! ㅎㅎ
처음에 초기화 하신거때문에
for(int i=0;i<105;i++) for(int j=0;j<105;j++) v[i][j] = INF;
아래 입력에서는 INF 가 나올것 같네요
10
해결되었다니 다행입니다! ㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
cocogod 7년 전
그다음가야할 곳이 1 이면 있던값과 비교하고
0이면 그전값을 그대로 가저가는 BFS를 사용하였습니다.
값은 잘 나오는듯하나 메모리 문제로인해 통과를 하지 못하는군요....
제생각엔 큐에 많이 들어가다보니 메모리 문제 걸린듯 합니다.
이러면 DP를 써야할듯 한대 감이 안잡힙니다...
조금만 힌트를 나누어주세요 ㅠ