Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- Greedy
- BFS
- 다이나믹프로그래밍
- 백트래킹
- backtracking
- 스택
- 종만북
- 문자열
- 분리집합
- 백준
- 이분탐색
- 너비우선탐색
- acm
- 동적계획법
- Algospot
- 재귀
- 누적합
- stack
- 완전탐색
- 그리디
- 알고스팟
- 유니온파인드
- 분할정복
- 세그먼트트리
- BOJ
- DP
- union-find
- priority_queue
- DFS
- 알고리즘문제해결전략
Archives
- Today
- Total
DAMPER's 낙서장
[알고리즘 문제해결전략] 최적화 문제 동적 계획법 레시피 본문
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 |