효율적인 알고리즘을 위해서는 시간 복잡도를 고려해야 한다.
최대공약수와 최소공배수를 구하는 방법과 모듈에 대해 알아본다.
시간 복잡도를 고려하여 소수를 구한다.
회문과 관련된 알고리즘을 알아본다.
분할 정복과 백트래킹에 대해 알아본다.
재귀와 정렬에 대해 알아본다.
특정 정점(노드)에서 시작해서 트리나 그래프에서 한 가지 경로를 최대한 깊게 탐색하고, 해당 경로를 끝까지 탐색한 후 다른 경로로 이동하는 DFS에 대해 알아본다.
하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는, 즉 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법인 BFS에 대해 알아본다.
한 정점에서 다른 모든 정점으로의 최단 경로를 구하는 알고리즘인 다익스트라에 대해 알아본다.
이전에 계산한 값을 재사용하여, 하나의 문제를 한 번만 풀게 하는 알고리즘 패러다임인 동적 계획법에 대해 알아본다.