맞는데 왜 틀릴까..?

알고리즘 12

DFS (Depth-First Search) 깊이 우선 탐색

DFS는 깊이 우선 탐색이라고도 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다 DFS는 스택 자료구조(혹은 재귀 함수)를 이용하며, 구체적인 동작 과정은 다음과 같다 1.탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다 2.스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리한다 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다 3.더 이상 2번의 과정을 수행할 수 없을 때까지 반복한다 ex)백준 2667 - 단지번호붙이기 (연결 요소를 이루는 노드 수를 계산) 실행결과 1 2 7 6 8 3 4 5

알고리즘 2022.01.19

BFS (Breadth-First Search) 너비 우선 탐색

BFS는 너비 우선 탐색이라고도 부르며, 그래프에서 가까운 노드부터 우선적으로 탐색하는 알고리즘이다 BFS는 큐 자료구조를 이용하며, 구체적인 동작 과정은 다음과 같다 1.탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다 2.큐에서 노드를 꺼낸 뒤에 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리한다 3.더 이상 2번의 과정을 수행할 수 없을 때까지 반복한다 보통 최단경로를 찾는 문제에서 많이 사용한다. ex)백준2178 - 미로 최단거리 찾기 백준 7576 - 가중치가 없는 그래프에서 다중 시작점에서 모든 칸 까지 최단거리 찾기 시작점 A 에서 F 까지의 최단 경로를 알고 싶다고 하자. BFS를 진행하면서 F 를 처음 딱 방문하는 순간이 있을 것이다. 그 순간에 거리가..

알고리즘 2022.01.19