유니온 파인드 (Union-Find) / 분리 집합 (Disjoint Set)
원소들의 집합 관계를 관리하는 유니온 파인드의 두 연산과, 경로 압축·랭크 합치기로 성능을 높이는 방법을 정리했습니다.
원소들의 집합 관계를 관리하는 유니온 파인드의 두 연산과, 경로 압축·랭크 합치기로 성능을 높이는 방법을 정리했습니다.
한정된 용량의 배낭에 최대 가치를 담는 0/1 배낭 문제의 점화식과 동적 계획법 풀이를 정리했습니다.
두 개의 포인터를 이동시키며 부분 배열이나 합 조건을 효율적으로 처리하는 두 포인터 기법을 정리했습니다.
음수 간선이 있어도 최단 경로를 구할 수 있는 벨만 포드 알고리즘과 음수 사이클 감지, 개선판인 SPFA를 정리했습니다.
방향성을 어기지 않고 노드를 나열하는 위상 정렬의 원리와, 진입 차수를 이용한 구현 방법을 정리했습니다.
음수 가중치가 없는 그래프에서 한 정점부터 모든 정점까지의 최단 경로를 구하는 다익스트라 알고리즘을 정리했습니다.
최장 증가 부분 수열을 동적 계획법으로 구하는 방법과, 이분 탐색을 이용해 O(N log N)으로 줄이는 방법을 정리했습니다.
가상의 선을 이동시키며 만나는 요소를 처리하는 스위핑 기법과, 좌표 범위가 클 때 효율적인 이유를 정리했습니다.
이분 그래프의 정의와, 홀수 길이 사이클이 없다는 성질을 이용해 이분 그래프인지 판별하는 방법을 정리했습니다.
최소 신장 트리의 개념과, 시작점에서 가장 가까운 노드를 하나씩 추가해 나가는 프림 알고리즘을 정리했습니다.