BFS와 DFS는 탐색 방식이 달라 어느 것이 효율적임을 따질수는 없습니다. 개인적으로, DFS는 어떻게든 찾기만 하면 될 때 쓰고 BFS는 탐색 시 이동 횟수가 최소인 것을 찾을 때 쓰는 느낌입니다.
만약 둘 다 적용할 수 있는 문제가 있다면 선형 시간 내에 해결되도록 짜여있을테니 뭘 써도 상관없지만 저는 DFS를 권장합니다. 일단 DFS가 짜기 편하기도 하고, BFS는 queue에서 넣고 꺼내고 복사하는 과정을 거치는데 DFS의 함수 호출보다는 약간 느리고 메모리도 더 필요로 합니다.
sally3605 3년 전
제가 해당 문제를 dfs로 풀었을 때에는 360ms 정도에 통과했고,
bfs로 풀 때에는 528ms 로 통과를 해서 질문 드립니다!
사실 전 bfs가 더 효율적이고 빠르게 풀리는 문제라 생각했는데, dfs가 최적인 문제라면 문제의 어떤 부분을 힌트삼을 수 있는지 알고 싶습니다 !
아래의 코드는 제가 짠 bfs 코드입니다 감사합니다 :D