알고리즘
복잡도
재귀 (Recursion)
재귀 함수의 장점
- 반복문을 줄임으로써 코드를 간결하게 하고 수정이 용이해진다.
- 변수를 사용하는 개수가 줄어든다.
재귀 함수의 단점
- 반복문에 비해 코드의 흐름이 직관적이지 않다.
- 메서드를 반복적으로 호출하면서 메모리의 스택 영역을 많이 점유하게 되어 반복문에 비해 더 많은 메모리를 사용하게 된다.
- 메서드가 호출되고 종료하면서 컨텍스트 스위칭이 이루어지는 비용을 감수해야 한다.
Greedy Algorithm
Brute-force Algorithm
Divide-and-conquer Algorithm
Dynamic Programming
Binary Search
Parametric Search
결정 알고리즘을 최적화 알고리즘으로 바꾸는 테크닉
최적화 문제를 결정 문제로 바꿔서 풀 수 있다.
이분 탐색을 사용하여 결정 문제를 만족시키는 값을 찾고 그 값이 최적화 문제의 답이 되는 유형이 존재한다.
Math Algorithms
순열 (Permutation)
순열을 만드는 과정을 그래프로 생각하고 DFS, BFS를 활용할 수 있다.
References
- Permutation Algorithms Using Iteration and the Base-N-Odometer Model (Without Recursion)
- itertools - Functions creating iterators for efficient looping - Python 3.10.7 documentation