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
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

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

    • Github
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바