제한된 공간과 시간 안에서 데이터를 어떻게 처리할 것인지를 정해놓은 로직
종류
탐색(Search)
- 선형 탐색(Linear Search)
- 이분(이진) 탐색(Binary Search)
- 순차 탐색(Sequential Search)
- 해시 탐색(Hash Search)
정렬(Sorting)
- 버블 정렬(Bubble Sort)
- 선택 정렬(Selection Sort)
- 삽입 정렬(Insertion Sort)
- 퀵 정렬(Quick Sort)
- 병합 정렬(Merge Sort)
- 힙 정렬(Heap Sort)
- 기수 정렬(Radix Sort)
- 계수 정렬(Count Sort)
완전 탐색
- 브루트 포스
- 비트 마스크
- 백트리캥
- 재귀함수
- 순열
- DFS(깊이 우선 탐색) & BFS(너비 우선 탐색)
분할 정복
동적 계획법(Dynamic Programming)
그리디(Greedy)
트리
- 이진 검색 트리(Binary Search Tree)
그래프
- 위상 정렬
최단 경로
- Floyd-Warshall
- 다익스트라(Dijkstra)
- Bellman-Ford
최소 신장 트리(MST, Minimum Spanning Tree)
- Kruskal
- Prim
기타
- 비트 연산
- 진수 변환
- 재귀(Recursion)
- 유클리드 호제법(최대공약수, 최소공배수)
- 투포인터(슬라이딩 윈도우)
- 조합, 순열
- 파라메트릭 서치
- 최장 증가 수열(LIS)
- 최소 공통 조상(LCA)
- 비트 마스크(BitMask)
- Matching Parenthesis problem
- Variables / Pointers manipulation
- reverse linked list(duplicates, removing duplicates)
- Custom data structures(Object oriented programming)