최단거리는 무조건 BFS입니다. 왜 DFS로 시간 내에 최단거리를 찾을 수 없는지 잘 생각해 보세요.
2665번 - 미로만들기
최단거리는 아니라 DFS를 적용할수는 있는 것으로 보입니다.
(저 역시도 DFS로 해결을 했고요..)
특정 검은점 위치에 도달시, root부터 해당 노드까지의 (검->흰)변환개수를 최소값으로 저장하도록 걸러주며 저장해간다면 Pass가 가능할 것 같습니다.
@gohyunyoung98 님이 제출하신 코드는 (x, y, 거리) 로 구성된 그래프에서 DFS를 한 것으로 볼 수 있습니다. 그 그래프에는 정점이 O(n^4)개 있으므로 시간 복잡도도 O(n^4)입니다. 따라서 시간 내에는 돌아가지만, 매우 비효율적이고 입력 범위가 4배 정도만 커져도 이렇게 풀 수 없습니다.
@jh05013 조언 감사합니다. 말씀해주신 대로 N=100,1000 으로 테스트 해보니 DFS로는 입력범위가 커지는 경우에 대해서 한계가 있는 것 같습니다. BFS방식으로 해결하는게 옳을 것 같네요. 가중치가 없는 최단거리의 경우는 무조건 BFS인걸로 알고있는데, 혹시 이와 반대로 그렇다면 DFS만을 사용해야 하는 경우는 어떤 경우인지 예시정도 혹시 조언해 주실 수 있으신가요?
댓글을 작성하려면 로그인해야 합니다.
skyinyour 5년 전
DFS로 나름 가지치기를 하여 정답은 나오지만 시간초과가 나옵니다.
여기서 메모제이션을 사용해야하는건가요 ?
메모제이션을 여기에 적용하기도 어렵지만(제실력으로는 ㅠㅠ) 메모제이션을 했을 경우 만약에 최소값을 건너뛰어버릴 수 있을 것 같다는 생각을 하였습니다.
BFS로 도전하였지만.. 아래 주석과같이 구현해보았는데 틀린답이 나옵니다. .ㅠㅠ
방향좀 잡아주세요 .. !!