1613번 - 역사
자료구조를 배울때,
Floyd보다 더 빠르다고 배웠는데요 (O(V^2) / O(V^3))
왜, 이 문제에서 Floyd는 되고 BFS는 되지 않는지 궁금합니다.
방향이 고정되지 않아 앞 뒤로 가야하는 상황이 넓이를 크게 만들어서 BFS를 돌릴수없는건가요...?
또, 어떤 감으로(?) 어떤 근거로(?)
이 문제는 Floyd로 접근해야한다! 가 도출되는지 궁금합니다..
사실 전 DFS보단 BFS가 일반적으로 빠르니까 BFS를 결정했거든요.
한번에 앞,뒤로 가는 데이터 검사도 용이하다 생각했고요..
한가지 케이스면 BFS가 빠른 것이 맞습니다
하지만 Floyd는 한 번만 수행하면 각 케이스에 대해 O(1)로 찾아낼 수 있으므로, O(V^3)이 되지만,
BFS의 경우에는 각 케이스에 대해 O(V^2)이므로 총 시간복잡도는 (SV^2)이 되고, 여기서 최악의 경우 V = 400 S = 50000이므로 시간초과가 발생할 여지가 있습니다
감사합니다 이해하였습니다. !
댓글을 작성하려면 로그인해야 합니다.
blackbbean 5년 전
자료구조를 배울때,
Floyd보다 더 빠르다고 배웠는데요 (O(V^2) / O(V^3))
왜, 이 문제에서 Floyd는 되고 BFS는 되지 않는지 궁금합니다.
방향이 고정되지 않아 앞 뒤로 가야하는 상황이 넓이를 크게 만들어서 BFS를 돌릴수없는건가요...?
또, 어떤 감으로(?) 어떤 근거로(?)
이 문제는 Floyd로 접근해야한다! 가 도출되는지 궁금합니다..
사실 전 DFS보단 BFS가 일반적으로 빠르니까 BFS를 결정했거든요.
한번에 앞,뒤로 가는 데이터 검사도 용이하다 생각했고요..