가능한 모든 경우를 탐색하여 문제를 해결하는 방법
데이터가 정렬된 상태에서 절반씩 범위를 나눠 분할 정복기법으로 특정한 값을 찾아내는 알고리즘
배열의 [현재 인덱스/2]에 접근하여 탐색
➡️ O(log n)
➡️ 가장 빠른 시간복잡도를 가지지만, 항상 최적의 해를 보장하진 않음
❗️데이터의 크기가 작은 경우 선형 탐색이 적합
재귀함수로 풀어냈을 때, 지나친 중복이 발생하는 경우에 이를 피하기 위해 사용하는 알고리즘
보통 배열에 값을 저장하고, 저장한 값으로 답을 도출하는 방식
피보나치 수열 : f(n) = f(n - 1) + f(n - 2)