728x90
반응형

백트래킹 2

백트래킹(Backtracking) 알고리즘

개요백트래킹(Backtracking)은 가능한 모든 경우의 수를 탐색하되, 불가능하거나 의미 없는 경로는 조기에 차단(pruning)하는 완전 탐색 기법이다. DFS(깊이 우선 탐색)를 기반으로 하며, 부분 해(partial solution)를 점진적으로 구성해가다가 해답이 아니라고 판단되면 직전 상태로 되돌아가 다른 경로를 탐색한다. 퍼즐, 조합, 순열, 경로 탐색 등 다양한 문제에 사용된다.1. 개념 및 정의완전 탐색(Brute Force): 가능한 모든 경우를 시도백트래킹: 모든 경우를 시도하되, 유망하지 않은 경로는 가지치기(prune)재귀 호출 + 조건 기반 되돌아가기 형태로 구현됨2. 동작 구조 단계 설명 1현재 노드(상태)가 해답인지 확인2해답이면 출력 또는 저장3아니라면 다음 가능한 선택..

Topic 2025.03.29

DFS 알고리즘(Depth-First Search)

개요DFS(Depth-First Search)는 트리(Tree)나 그래프(Graph) 구조에서 한 방향으로 깊이 탐색을 진행한 뒤, 더 이상 갈 수 없을 때 되돌아오는(Backtracking) 방식의 탐색 알고리즘이다. 재귀 또는 스택 기반으로 구현되며, 경로 탐색, 조합 생성, 백트래킹, 연결 요소 탐색 등에 널리 사용된다. 본 글에서는 DFS의 개념, 구현 방식, 시간 복잡도, BFS와의 차이, 실전 활용 사례 등을 다룬다.1. 개념 및 정의DFS는 시작 노드에서 한 방향으로 가능한 깊이까지 탐색하고, 막히면 이전 지점으로 되돌아가 다시 탐색을 이어가는 방식의 탐색 알고리즘이다. 트리 순회(preorder, postorder)나 그래프의 미방문 노드 전체 탐색 등에 사용된다.2. DFS 탐색 방식 단..

Topic 2025.03.28
728x90
반응형