인프런 커뮤니티 질문&답변

hallo님의 프로필 이미지
hallo

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

7. 이진트리 레벨탐색(BFS : Breadth-First Search)

탐색에서 BFS,DFS 어떻게 구분하여 문제푸나여

작성

·

903

2

DFS는 백트레킹이 이고

BFS 없다

이게 구분점인가요? 둘다 탐색인데 

DFS와 다르게 BFS에서 또 Queue를 사용한 이유는 뭔가요??

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

문제가 어떤 경우의 수를 구한다거나 하면 DFS를 사용하고, 최단거리, 또는 최소횟수를 구하라는 문제는 BFS를 사용한다고 보시면 좋습니다. 이런 느낌은 문제를 많이 접하면서 차즘 알게됩니다. 

아마 아래 문제 송아지 찾기를 공부하게 되면 BFS를 쓰는 상황을 좀 알게될겁니다. BFS가 큐를 쓰는 이유는 먼저 들어간게 먼저나오는 큐자료구조를 써야 트리에서 레벨탐색이 되기 때문입니다. 레벨탐색을 해야 하는 이유는 아래  송아지찾기 문제를 공부하시면 느낌이 올겁니다.

hallo님의 프로필 이미지
hallo

작성한 질문수

질문하기