728x90
반응형
1️⃣ 탐색 알고리즘이란?
탐색 알고리즘(Search Algorithm)은 주어진 데이터 구조(리스트, 트리, 그래프 등)에서 특정 값을 찾는 방법입니다. 탐색 알고리즘은 데이터의 정렬 여부, 탐색 대상의 크기 및 데이터 구조에 따라 다양한 방식으로 구현됩니다.
2️⃣ 주요 탐색 알고리즘의 종류
- 선형 탐색(Linear Search): 리스트의 모든 요소를 차례대로 확인하는 방법.
- 이진 탐색(Binary Search): 정렬된 리스트에서 중간 값을 기준으로 탐색 범위를 반으로 줄여나가는 방법.
- 깊이 우선 탐색(DFS: Depth-First Search): 그래프나 트리에서 한 경로를 끝까지 탐색하는 방법.
- 너비 우선 탐색(BFS: Breadth-First Search): 그래프나 트리에서 가까운 노드부터 탐색하는 방법.
3️⃣ 탐색 알고리즘 예제 문제
예제 1: 선형 탐색
문제: 다음과 같은 리스트에서 숫자 5
의 위치를 찾아보세요.
- 리스트:
[3, 1, 4, 5, 9]
풀이:
- 리스트의 첫 번째 요소부터 순서대로 비교합니다.
3 → 1 → 4 → 5
에서5
를 찾을 수 있으며, 인덱스 3입니다.
답: 5는 인덱스 3에 위치합니다.
예제 2: 이진 탐색
문제: 정렬된 리스트 [1, 3, 5, 7, 9, 11]
에서 숫자 7
의 위치를 찾아보세요.
풀이:
- 중간 값인
5
와 비교합니다.7 > 5
이므로 오른쪽 부분 리스트[7, 9, 11]
에서 탐색을 이어갑니다.
- 새로운 중간 값
9
와 비교합니다.7 < 9
이므로 왼쪽 부분 리스트[7]
에서 탐색을 이어갑니다.
7
을 찾았습니다.
답: 7은 인덱스 3에 위치합니다.
예제 3: 깊이 우선 탐색 (DFS)
문제: 다음과 같은 그래프에서 A
에서 시작하여 DFS로 탐색하세요.
A
/ \
B C
| |
D F
|
E
풀이:
- 시작 노드
A
방문 - 왼쪽 자식 노드
B
방문 B
의 자식 노드D
방문D
의 자식 노드E
방문C
방문 후,F
방문
답: 탐색 순서: A → B → D → E → C → F
예제 4: 너비 우선 탐색 (BFS)
문제: 다음과 같은 그래프에서 A
에서 시작하여 BFS로 탐색하세요.
A
/ \
B C
| |
D F
|
E
풀이:
- 시작 노드
A
방문 - 인접 노드
B
,C
방문 B
의 자식 노드D
방문C
의 자식 노드F
방문D
의 자식 노드E
방문
답: 탐색 순서: A → B → C → D → F → E
4️⃣ 탐색 알고리즘의 장단점 비교
탐색 알고리즘 | 장점 | 단점 | 시간 복잡도 |
---|---|---|---|
선형 탐색 | 정렬되지 않은 데이터도 탐색 가능 | 데이터가 많을 경우 비효율적 | O(n) |
이진 탐색 | 빠른 탐색 가능 (정렬된 데이터) | 정렬된 리스트에서만 사용 가능 | O(log n) |
DFS | 메모리 사용량 적음 | 깊은 그래프에서 스택 오버플로우 위험 | O(V + E) |
BFS | 최단 경로 탐색에 유리 | 메모리 사용량 많음 | O(V + E) |
- DFS(깊이 우선 탐색)은 경로 탐색 문제에 적합하며, 스택 자료 구조를 사용하거나 재귀로 구현합니다.
- BFS(너비 우선 탐색)은 최단 경로 문제에 적합하며, 큐 자료 구조를 사용합니다.
✍️ 정리
- 선형 탐색은 단순한 리스트에서 사용하기 쉽지만, 데이터가 많을수록 효율이 떨어집니다.
- 이진 탐색은 정렬된 데이터에서 빠르게 값을 찾는 데 유리합니다.
- DFS는 깊이 있는 경로 탐색에 적합하고, BFS는 넓이 우선 탐색과 최단 경로 탐색에 적합합니다.
- 문제의 특성과 데이터 구조에 따라 적합한 탐색 알고리즘을 선택하는 것이 중요합니다.
이 자료는 정보보안 이해와 활용 자료와 데이터 이해와 활용 자료를 참고하여 작성되었습니다.
728x90
반응형
'Topcit' 카테고리의 다른 글
HashMap이란? (0) | 2024.11.10 |
---|---|
싱글페이지 어플리케이션 (1) | 2024.11.10 |
소스 결합도(Source Coupling) (0) | 2024.11.10 |
이진 트리 순회 방법 (예제) (0) | 2024.11.10 |
이진 트리 순회 방식 (1) | 2024.11.10 |