본문 바로가기
IT 공부/자료구조&알고리즘

알고리즘 12 동적계획법

by 랜턴K 2025. 3. 26.
반응형

동적계획법
- 1. 문제를 부분 문제로 나눈다 
- 2. 가장 작은 부분 문제부터 해를 구한다 
- 3. 테이블에 부분 해를 저장한다 
- 4. 부분해를 이용하여 점차 상위 부분 최적해를 구한다 

-> 일반적으로 사람이 수계산하는 피보나치 수열 푸는 방법이 동적계획법과 같다 

LCS 알고리즘 ; Longest Common Subsequence ; 최장 공통 부분 수열 
- 부분수열이란 ? 수열의 일부 요소를 제거한 것
- 최장공통부분수열 ? 두 수열의 부분 수열 중 제일 긴 것 

Xi = <x1,x2,...xi>/ Yj = <y1,y2,...yj>의 문자열이 있다고 할 때, 
LCS_LENGTH(Xi,Yi) =
1) 0  :  i =0 or j =0
2) LCS_LENGTH(Xi-1,Yi-1) + 1  : xi = yi
3) MAX(LCS_LENGTH(Xi-1,Yi),LCS_LENGTH(Xi,Yi-1)) : i,j>=0 xi !=yi

최적부분구조로 되어있으므로 동적계획법을 사용할 수 있다

 

 

 

Algorithm/DynamicPrgoramming at main · Sukmin-LanternK/Algorithm

Contribute to Sukmin-LanternK/Algorithm development by creating an account on GitHub.

github.com

 

반응형

'IT 공부 > 자료구조&알고리즘' 카테고리의 다른 글

알고리즘 14 백트래킹  (0) 2025.04.01
알고리즘 11 분할 정복  (0) 2025.03.22
알고리즘 10 알고리즘 성능 분석  (0) 2025.03.19
알고리즘 9 문자열 탐색  (0) 2025.03.18
알고리즘 8 그래프_3  (0) 2025.03.10