그래프 문제 풀기 시작했는데 BFS DFS에서 계속 막혀요. 코드는 대충 따라 칠 수 있어요. BFS는 큐 쓰고 DFS는 스택이나 재귀 쓰고, 이 정도는 아는데 문제 딱 보면 얘를 뭘로 풀어야 되는지 판단이 안 서요.
솔직히 둘 다 결국 모든 노드 방문하는 거잖아요. 그럼 아무거나 써도 답 나오는 거 아닌가 싶은데, 사람들은 이 문제는 BFS다 저 문제는 DFS다 이렇게 딱딱 얘기하니까 뭔가 기준이 있는 것 같긴 해요.
예를 들어 이런 미로에서 최단 거리 구하라 하면,
0 0 0 1
1 1 0 1
0 0 0 0
0 1 1 0
이런 건 BFS로 풀라던데 왜 하필 BFS인지, DFS로는 최단 거리 못 구하는 건지 모르겠어요.
궁금한 점,
1. 방문 순서 말고 실제로 결과가 달라지는 상황이 있나요
2. 최단 거리는 왜 BFS인가요? DFS는 왜 안 되는 거예요
3. 문제 보고 이건 BFS다 DFS다 판단하는 나름의 기준 같은 거 있으면 알려 주세요
맨날 둘 중 아무거나 썼다가 틀리니까 답답하네요.