동적 계획법으로 풀 수 있는 문제는 반드시..
- 중복 부분 문제 구조 입니다.
- 최적 부분 문제 구조 입니다.
- 경우의수 부분문제 구조 입니다.
그게 뭔데.. (예시)
- 중복 부분 문제 구조 :
- 최적 부분 문제 구조 :
- 경우의수 부분문제 구조 :
DP 사고과정
- 하향식 접근(재귀)
- 상태공간 트리 작성
- 기저부터 상향식으로 접근
DP 사고과정(상세)
- 문제에 대한 이해, 정의 - 최적해?, 경우의 수?
- 부분문제 식별
- 부분문제에 대한 상태 표현(동적 테이블 설계 )
- D[i], D[i][j]
- i: 상태, D[i] : i상태일때의 값
- 부분문제들간의 관계 파악 후 점화식 도출
- D[i]가 D[i-1], D[i-2], .. 어떤 관계 ???
- 관계 식별 후 더이상 관계를 이용한 해 도출이 안되는 기저 찾기
- base case : 이때의 값 식별
- 동적테이블 생성 및 base case 초기화 후 점화식을 활용해서 값 채우기
- 해 도출
- 마지막에 채워진 값이 무조건 해가 아니다 !!!
- 문제에서 원하는 상태를 표현하고 있는 값들을 이용해서 해 도출
- 필요시 공간복잡도 최적화