DFS (깊이 우선 탐색)

2025. 5. 7. 10:59·📚 STUDY/📈 알고리즘

그래프에서 가능한 깊이까지 먼저 탐색한 다음, 더이상 진행될 수❌ → 다시 돌아와 다른 경로를 탐색하는 알고리즘. 

 

💡 DFS의 정당성

✅ 시작정점에서 도달 가능한 모든 정점을 정확히 한 번씩 방문한다.

- DFS는 방문한 정점에 대해 방문 표시를 한다.- 어떤 정점 v를 방문할 때, v에 인접한 정점 w 중, 방문❌ 정점에 대해 재귀적으로 탐색하거나 스택에 넣는다.- 한 번 방문한 정점은 다시 방문❌ → 각 정점은 정확히 1번 방문된다.

 

💡 DFS의 깊이 우선 탐색 특성

✅  DFS는 가능한 깊이까지 탐색을 진행한 후, 막히면 되돌아가서 탐색을 이어간다.

✔ 증명 (DFS 흐름은 다음과 같다.)

1. 현재 정점 v에서 인접한 정점 w를 찾는다.

2. 아직 방문❌ 정점 w 발견 → 그 정점으로 바로 이동해 탐색을 계속한다.

3. 더이상 방문 가능한 인접 정점❌ → 되돌아온다.

이는 스택 or 재귀 호출을 통해 구현되어 현재 탐색 경로를 스택에 저장해두고, 막히면 스택에서 마지막으로 방문한 정점으로 되돌아가는 방식이다.

이 과정으로 DFS는 한 경로를 따라 가능한 멀리 내려갔다가, 더이상 내려갈 수 없을 때 가장 최근 갈림길로 돌아와 다른 경로를 탐색한다.

 

🌐 시간복잡도 : O(|V|+|E|)

 

 

저작자표시

'📚 STUDY > 📈 알고리즘' 카테고리의 다른 글

BFS (너비 우선 탐색)  (0) 2025.05.07
Quick sort  (0) 2025.05.07
Merge sort  (0) 2025.05.07
Divide-and-Conquer Algorithm  (0) 2025.04.15
Algorithm & Time Complexity  (0) 2025.04.15
'📚 STUDY/📈 알고리즘' 카테고리의 다른 글
  • BFS (너비 우선 탐색)
  • Quick sort
  • Merge sort
  • Divide-and-Conquer Algorithm
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (89) N
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 📑 공부 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (42) N
        • 🔆 UNITY (1)
        • 📈 알고리즘 (9) N
        • 🔥 C (32)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    모션캡처
    Quick Sort
    c기초
    Unity
    C++
    정처기
    C
    Azure Kinect
    토익
    알고리즘
    SW 개발
    필기
    2021년
    프언 활용
    식별자
    실기
    Slam
    주석
    RC
    SW 설계
    Remote Internship
    azurekinect
    C언어
    정보시스템 구축관리
    정보처리기사
    BOJ
    DB 구축
    2022년
    mocopi
    Body Tracking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
DFS (깊이 우선 탐색)
상단으로

티스토리툴바