알고리즘 & 자료구조(2)
-
[그래프] 깊이 우선 탐색 DFS
DFSDFS는 그래프나 트리에서 탐색하는 알고리즘 중 하나로, 시작점에서부터 가능한 깊은 곳까지 탐색한 후에 백트래킹(backtracking)하여 다른 경로를 탐색하는 방식입니다. 즉, 한 경로를 따라 최대한 깊게 탐색한 후, 더 이상 탐색할 노드가 없으면 이전 노드로 돌아가 다른 경로를 탐색합니다.특징깊이 우선 탐색: DFS는 가능한 한 깊은 노드까지 탐색한 후, 더 이상 내려갈 수 없을 때 돌아가서 다른 경로를 탐색합니다. 노드를 "깊이"를 기준으로 탐색합니다.스택(Stack)을 이용한 구현: DFS는 노드를 저장하고 탐색 순서를 관리하기 위해 스택 자료 구조를 사용합니다. 현재 노드에서 인접한 노드를 스택에 추가하고, 가장 나중에 추가된 노드부터 처리합니다(LIFO, Last In, First Ou..
2024.09.14 -
[그래프] 너비 우선 탐색 BFS
BFS (너비 우선 탐색)특징계층적 탐색: BFS는 시작 노드에서 가까운 노드부터 탐색을 시작하여 점차 거리가 먼 노드들을 탐색합니다. 노드를 "너비"를 기준으로 탐색합니다.큐(Queue) 사용: BFS는 큐를 이용하여 노드를 저장하고 순차적으로 처리합니다. 큐는 FIFO(First In, First Out) 방식으로, 먼저 삽입된 노드를 먼저 처리합니다.최단 경로 보장: 무가중치 그래프에서는 BFS가 시작 노드로부터 모든 다른 노드까지의 최단 경로를 보장합니다.방문 여부 체크: BFS는 동일 노드를 여러 번 방문하지 않도록 방문 여부를 체크합니다. 이를 위해 방문 여부를 기록하는 배열이나 집합(Set)을 사용합니다.장단점장점:최단 경로 탐색에 유용합니다.모든 노드를 확실히 탐색할 수 있습니다.단점:큐와..
2024.09.13