[Algorithm]DFS/BFS알고리즘(Python)

Michelle Kim·2024년 9월 24일

Algorithm-CodingTest

목록 보기
5/10

🟠 DFS BFS 알고리즘

1. (드라마)하나를 몰아본다 --> DFS(깊이 우선탐색)

2. (드라마)여러개를 하나씩 본다 --> BFS(너비 우선탐색)

그래프? : 여러 개체들이 연결되어 있는 자료구조

탐색? : 특정 개체를 찾기 위한 알고리즘 --> 그래프 탐색 알고리즘

[대표적 문제 유형]

ex1. 경로탐색 유형 (최단거리, 시간)
ex2. 네트워크 유형 (연결)
ex3. 조합 유형 (모든 조합 만들기)

[구현방법]

  1. DFS: 한놈만 끝까지 패는 유형 --> 재귀함수가 가장 일반적
  2. BFS: 여러놈을 한대씩 때려가면서 하는 유형 --> Queue, LinkedList 일반적
    1) 가장 먼저 넣었던 것을 꺼내서
    2) 연결된 점을 Queue에 넣기
    3) Queue가 빌때까지 반복

** DFS vs BFS? : DFS를 조금더 선호! (but 단점 : 시간이 초과될 수 있음! )
--> DFS & BFS 모두 구현해보는것 추천!
(쉬운문제 --> 빠르게 DFS, 어려운문제 --> BFS로 구현)

profile
🇬🇧영국대학교)Computer Science학과 졸업 📚Data, AI, Backend 분야에 관심이 많습니다. 👉Email: kimbg9876@gmail.com

0개의 댓글