전체 글92 깊이 우선 탐색 DFS DFS(깊이 우선 탐색) 이란? DFS(깊이 우선 탐색)은 그래프나 트리 구조에서 한 정점으로부터 시작하여 깊이를 우선적으로 탐색하는 알고리즘입니다. 이 알고리즘은 주로 그래프의 모든 정점을 방문하거나 특정한 조건을 만족하는 정점을 찾는 데 사용됩니다. DFS는 스택(Stack) 또는 재귀 함수를 통해 구현될 수 있습니다. 시작 정점에서 출발하여 다음 정점으로 이동하고, 그 다음 정점에서 또 다시 다음 정점으로 이동하는 식으로 깊이를 우선적으로 탐색합니다. 이러한 과정에서 방문한 정점은 방문했다는 표시를 하고, 이미 방문한 정점이라면 더 이상 탐색을 진행하지 않고 이전 단계로 되돌아갑니다. DFS 코드 예시 (C#) 아래 코드는 그래프에서 깊이 우선 탐색을 수행하는 예시입니다. 각 정점을 리스트로 표현하.. 2024. 3. 28. 너비 우선 탐색 BFS BFS(너비 우선 탐색) 이란? BFS(너비 우선 탐색)는 그래프 탐색 알고리즘 중 하나로, 시작 정점으로부터 인접한 모든 정점을 먼저 탐색하는 방법입니다. 이 알고리즘은 그래프 내의 모든 정점을 방문하고, 최단 경로를 찾거나 특정 조건을 만족하는 노드를 찾을 때 유용하게 사용됩니다. BFS는 큐(Queue) 자료구조를 사용하여 구현됩니다. 탐색이 시작되면 시작 노드를 큐에 넣고 방문했다는 표시를 합니다. 그 후 큐에서 노드를 하나씩 꺼내어 해당 노드의 인접 노드를 큐에 넣고 방문했다는 표시를 합니다. 이 과정을 큐가 비어있을 때까지 반복합니다. 이러한 방식으로 탐색하면 시작 노드에서부터 거리가 가까운 노드부터 순차적으로 방문하게 됩니다. BFS 코드 예시 (C#) 아래 코드는 그래프를 구성하고 BFS .. 2024. 3. 27. 자료구조 - 큐(Queue) 큐(Queue) 이란? 큐(Queue)는 데이터를 선형 구조로 저장하는 자료구조로, FIFO(First-In-First-Out, 선입선출) 원칙을 따릅니다. 이는 처음 추가된 데이터가 처음으로 제거되는 구조를 의미합니다. 즉, 가장 먼저 저장된 요소가 가장 먼저 나오는 특징을 가지고 있습니다. 새로운 데이터는 큐의 뒷부분에 추가되고, 데이터는 큐의 앞부분에서 제거됩니다. 이로써 데이터는 일렬로 정렬되어 관리됩니다. 주로 데이터 처리 과정에서 선입선출의 원칙이 필요한 경우에 큐가 활용됩니다. 큐 코드 예시 (C#) 아래 코드는 C#에서 queue 활용의 예시입니다. using System; using System.Collections.Generic; public class QueueExample { pub.. 2024. 3. 26. 자료구조 - 스택(Stack) 스택(Stack) 이란? 스택(Stack)은 데이터 구조 중 하나로, 후입선출(LIFO, Last In First Out)의 원리를 따릅니다. 이 말은 가장 최근에 추가된 항목이 가장 먼저 제거되는 구조를 의미합니다. 새로운 데이터는 스택의 맨 위에 추가되며, 마지막에 추가된 데이터가 먼저 제거됩니다. 주로 함수 호출, 재귀 알고리즘, 괄호 검사, 미로 탐색 등과 같은 다양한 응용 프로그램에서 사용됩니다. 스택은 데이터를 저장하고 접근하는데 유용하며, 특히 데이터의 순서가 중요한 경우에 많이 활용됩니다. 스택 코드 예시 (C#) 아래 코드는 C#에서 stack 활용의 예시입니다. using System; using System.Collections.Generic; public class StackExam.. 2024. 3. 24. 이전 1 2 3 4 5 ··· 23 다음