알고리즘 목차 정리 페이지입니다. 아래 목차에서 각 알고리즘으로 연결되는 링크를 통해 상세 설명과 구현 코드를 확인할 수 있습니다.

알고리즘

정렬 알고리즘 (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 정렬된 접미사와 공통 접두사 길이로 서브스트링 질의.

자신만의 철학을 만들어가는 중입니다.
최상단으로 이동했습니다!
확대 이미지

댓글남기기