점화식2 알고리즘 - 동적 계획법 DP 동적 계획법 (DP, 메모이제이션, 점화식)알고리즘을 배우다 가장 큰 학습 벽으로 자주 꼽히는 영역이 동적 계획법(DP, Dynamic Programming)이다. 분할 정복이 큰 문제를 작은 문제로 쪼개되 작은 문제들이 서로 독립적인 경우에 잘 동작했다면, DP는 작은 문제들이 서로 겹치는 경우를 다룬다. 같은 부분 문제를 한 번만 풀고 그 답을 저장(메모)해 두면 다음에 만났을 때 즉시 꺼낼 수 있고, 이 단순한 발상의 전환이 지수 시간 알고리즘을 다항 시간으로 끌어내린다. 본 글은 DP의 두 가지 조건, 메모이제이션과 타뷸레이션의 차이, 그리고 고전 응용을 세심하게 정리한다(출처: CLRS — Introduction to Algorithms, 15장). 제가 학교 알고리즘 시간에 피보나치를 단순 재.. 2026. 5. 19. 알고리즘 - 분할 정복과 시간 복잡도 분할 정복 (재귀, 시간복잡도, 점화식)알고리즘 시리즈의 첫 글은 분할 정복(Divide and Conquer)이다. 이름이 거창해 보이지만 발상은 단순하다. 큰 문제를 같은 형태의 작은 문제 두세 개로 쪼개고, 작은 문제들의 답을 합쳐 원래 문제의 답을 만드는 전략이다. 이 단순한 아이디어 위에 병합 정렬·퀵 정렬·이진 탐색·고속 푸리에 변환·행렬 곱셈 같은 거의 모든 고급 알고리즘이 서 있으며, 같은 사고 틀이 그래픽스의 KD-Tree·DB의 B-Tree·MapReduce의 분산 처리까지 확장된다. 본 글은 분할 정복의 정의·시간복잡도 분석·마스터 정리·실전 예시를 세심하게 정리한다(출처: CLRS — Introduction to Algorithms). 제가 학교 알고리즘 수업에서 처음 같은 정렬 문.. 2026. 5. 19. 이전 1 다음