graph-traversalstackqueue
DFS와 BFS의 차이를 설명해 주세요
- 예상 시간
- 6분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
DFS는 어떤 자료구조로 구현하나요?
BFS에서 Queue가 필요한 이유는 무엇인가요?
방문 체크는 왜 필요한가요?
DFS와 BFS의 시간복잡도는 어떻게 되나요?
DFS가 BFS보다 메모리를 덜 쓰나요?
부가 설명
미로를 생각하면 DFS는 한 갈림길을 끝까지 가 본 뒤 막히면 돌아오는 방식입니다. BFS는 현재 위치에서 한 칸 거리, 두 칸 거리처럼 가까운 곳부터 넓게 확인합니다. 둘 다 모든 노드를 방문할 수 있지만, 방문 순서가 다르기 때문에 잘 맞는 문제가 달라집니다.
특히 “최단 거리”라는 말이 나오면 가중치가 없는 그래프인지 먼저 봐야 합니다. 모든 간선 비용이 같다면 BFS는 처음 도착한 순간이 최단 거리입니다. 하지만 간선마다 비용이 다르면 단순 BFS가 아니라 다익스트라 같은 알고리즘을 고려해야 합니다.
한 줄 정리
DFS는 깊게, BFS는 가깝게 탐색한다는 차이를 문제 조건에 연결해야 합니다.