Skip to main content

알고리즘

복잡도

재귀 (Recursion)

재귀 함수의 장점

  • 반복문을 줄임으로써 코드를 간결하게 하고 수정이 용이해진다.
  • 변수를 사용하는 개수가 줄어든다.

재귀 함수의 단점

  • 반복문에 비해 코드의 흐름이 직관적이지 않다.
  • 메서드를 반복적으로 호출하면서 메모리의 스택 영역을 많이 점유하게 되어 반복문에 비해 더 많은 메모리를 사용하게 된다.
  • 메서드가 호출되고 종료하면서 컨텍스트 스위칭이 이루어지는 비용을 감수해야 한다.

Greedy Algorithm

Brute-force Algorithm

Divide-and-conquer Algorithm

Dynamic Programming

결정 알고리즘을 최적화 알고리즘으로 바꾸는 테크닉
최적화 문제를 결정 문제로 바꿔서 풀 수 있다.
이분 탐색을 사용하여 결정 문제를 만족시키는 값을 찾고 그 값이 최적화 문제의 답이 되는 유형이 존재한다.

Math Algorithms

순열 (Permutation)

순열을 만드는 과정을 그래프로 생각하고 DFS, BFS를 활용할 수 있다.

References

최대공약수 (Great Common Divisor)

멱집합 (Power Set)