DAMPER's 낙서장

[알고리즘 문제해결전략] 최적화 문제 동적 계획법 레시피 본문

Problem Solving/알고리즘 문제해결전략

[알고리즘 문제해결전략] 최적화 문제 동적 계획법 레시피

DAMPER 2020. 10. 16. 01:51
728x90

 

다음은 책에서 제시하는 최적화 문제의 동적 계획법을 설계하기 위한 과정입니다.

 

이 과정이 모든 문제를 해결해주는 것은 아니지만, 동적 계획법에 익숙해지기 전에 대략적 지침은 될 것입니다.

 

1. 모든 답을 만들어 보고 그 중 최적해의 점수를 반환하는 완전탐색 알고리즘을 설계한다.

 

2. 전체 답의 점수를 반환하는 것이 아니라, 앞으로 남은 선택들에 해당하는 점수만을 반환하도록 부분 문제의 정의를 바꾼다.

 

3. 재귀 호출의 입력에 이전의 선택에 관련된 정보가 있다면 꼭 필요한 것만 남기고 줄인다.

문제에 최적 부분 구조가 성립할 경우, 이전 선택에 관련된 정보를 완전히 없앨 수도 있다.

여기서 우리의 목표는 가능한 한 중복되는 부분 문제를 많이 만드는 것.

입력의 종류가 줄어들면 줄어들수록 더 많은 부분 문제가 중복되고, 따라서 메모이제이션을 최대한으로 활용할 수 있다.

 

4. 입력이 배열이거나 문자열인 경우 가능하다면 적절한 변환을 통해 메모이제이션을 할 수 있도록 한다.

 

5. 메모이제이션을 적용한다.

 

 

728x90

'Problem Solving > 알고리즘 문제해결전략' 카테고리의 다른 글

[ALGOSPOT] JLIS  (0) 2020.10.16
[ALGOSPOT] LIS  (0) 2020.10.16
[ALGOSPOT] TRIANGLEPATH  (0) 2020.10.15
[알고리즘 문제해결전략] 메모이제이션  (0) 2020.10.15
[ALGOSPOT] JUMPGAME  (0) 2020.10.09