알고리즘 목차 정리 페이지입니다. 아래 목차에서 각 알고리즘으로 연결되는 링크를 통해 상세 설명과 구현 코드를 확인할 수 있습니다.
알고리즘
정렬 알고리즘 (Sorting)
| 알고리즘 이름 | 설명 |
|---|---|
| 버블 정렬 | 가장 간단한 정렬 알고리즘. |
| 선택 정렬 | 매번 최솟값을 선택하여 정렬. |
| 삽입 정렬 | 정렬된 부분에 요소를 삽입. |
| 퀵 정렬 | 분할 정복 방식의 정렬 알고리즘. |
| 병합 정렬 | 두 개의 정렬된 배열을 합치는 방식. |
| 힙 정렬 | 힙 자료구조를 이용한 정렬. |
탐색 알고리즘 (Searching)
| 알고리즘 이름 | 설명 |
|---|---|
| 선형 탐색 (Linear Search) | 순차적으로 모든 원소를 확인. |
| 이진 탐색 (Binary Search) | 정렬된 배열에서 중앙 기준 반으로 탐색. |
| BFS (Breadth-First Search) | 그래프를 너비 우선으로 탐색. 최단 간선 수 경로. |
| DFS (Depth-First Search) | 그래프를 깊이 우선으로 탐색. 경로/사이클 확인. |
그래프 알고리즘 (Graph)
| 알고리즘 이름 | 설명 |
|---|---|
| 다익스트라 (Dijkstra) | 음수 간선 없는 최단 경로. |
| 벨만-포드 (Bellman-Ford) | 음수 간선 허용 최단 경로, 음수 사이클 검출. |
| 플로이드-워셜 (Floyd-Warshall) | 모든 쌍 최단 경로. |
| 크루스칼 (Kruskal) | 최소 신장 트리. 유니온-파인드 사용. |
| 프림 (Prim) | 최소 신장 트리. 우선순위 큐 사용. |
| 위상 정렬 (Topological Sort) | DAG의 선행 관계 정렬. |
동적 계획법 (Dynamic Programming, DP)
| 알고리즘 이름 | 설명 |
|---|---|
| 0/1 배낭 (Knapsack) | 용량 내 최대 가치 선택. |
| LIS (최장 증가 부분 수열) | 증가 수열의 최대 길이. |
| LCS (최장 공통 부분 수열) | 두 문자열의 공통 부분 수열 최대 길이. |
| 동전 거스름 (Coin Change) | 최소 동전 수/경우의 수 계산. |
분할 정복 (Divide & Conquer)
| 알고리즘 이름 | 설명 |
|---|---|
| 합병 정렬 (Merge Sort) | 리스트를 분할 후 병합해 정렬. |
| 퀵 정렬 (Quick Sort) | 피벗 기준 분할 후 정렬. |
| 이진 탐색 (Binary Search) | 중앙 분할로 탐색. |
| 최근접 점 쌍 (Closest Pair) | 평면 점 집합 최소 거리 계산. |
그리디 알고리즘 (Greedy)
| 알고리즘 이름 | 설명 |
|---|---|
| 활동 선택 (Activity Selection) | 종료 시간 기준 선택해 최대 활동 수. |
| 인터벌 스케줄링 | 겹치지 않는 구간 최대 선택. |
| 허프만 코딩 (Huffman Coding) | 최적 접두사 코드 생성. |
| 거스름돈 문제 (Greedy Coin) | 특정 동전 체계에서 최소 동전 수. |
백트래킹 (Backtracking)
| 알고리즘 이름 | 설명 |
|---|---|
| N-Queen | 체스판에 서로 공격하지 않는 N개의 퀸 배치. |
| 순열/조합 생성 | 모든 순열·조합 나열. |
| 부분집합 합 (Subset Sum) | 주어진 합을 만드는 부분집합 탐색. |
| 스도쿠 해결 | 제약 충족을 통한 퍼즐 해결. |
문자열 알고리즘 (String)
| 알고리즘 이름 | 설명 |
|---|---|
| KMP | 접두사-접미사 테이블로 선형 시간 패턴 매칭. |
| 라빈-카프 (Rabin-Karp) | 롤링 해시 기반 문자열 검색. |
| Z-Algorithm | 선형 시간으로 패턴 일치 길이 계산. |
| 트라이 (Trie) | 문자열 집합 검색/자동완성. |
| 접미사 배열 & LCP | 정렬된 접미사와 공통 접두사 길이로 서브스트링 질의. |
자신만의 철학을 만들어가는 중입니다.
댓글남기기