알고리즘
이 디렉토리는 다양한 알고리즘의 개념과 구현 방식, 그리고 문제 해결 전략을 정리한 공간입니다.
각 알고리즘은 이론적인 설명과 함께 예시 코드, 시간 복잡도 분석, 적용 가능한 문제 유형 등을 포함하여 구성되어 있습니다.
분류
1. 정렬 알고리즘
- 버블 정렬 (Bubble Sort)
- 선택 정렬 (Selection Sort)
- 삽입 정렬 (Insertion Sort)
- 병합 정렬 (Merge Sort)
- 퀵 정렬 (Quick Sort)
- 힙 정렬 (Heap Sort)
- 계수 정렬, 기수 정렬 등
2. 탐색 알고리즘
- 순차 탐색 (Linear Search)
- 이진 탐색 (Binary Search)
- DFS (깊이 우선 탐색)
- BFS (너비 우선 탐색)
- 백트래킹, 이진 탐색 트리 기반 탐색
3. 그래프 알고리즘
- DFS, BFS 응용
- 최단 경로 알고리즘: 다익스트라, 벨만 포드, 플로이드 워셜
- 최소 신장 트리: 크루스칼, 프림
- 위상 정렬, 유니온 파인드, 강결합 요소(SCC)
4. 동적 프로그래밍 (DP)
- Memoization, Tabulation 기법
- 피보나치 수열, 배낭 문제
- 최장 증가 부분 수열 (LIS), 최장 공통 부분 수열 (LCS)
5. 분할 정복 및 그리디
- 이진 탐색, 병합 정렬, 퀵 정렬 (분할 정복 예시)
- 대표적인 그리디 알고리즘: 동전 문제, 회의실 배정, 크루스칼