티스토리 뷰
- 다이나믹 프로그래밍 -> 큰 문제를 작은 문제로 나눠서 푸는 알고리즘
- 두 가지 속성을 만족해야 다이나믹 프로그래밍으로 문제를 풀 수 있음.
- Overlapping Subproblem : 겹치는 부분문제
- Optimal Substructure : 최적 부분구조
- 다이나믹 프로그래밍에서 각 문제는 한 번만 풀어야 함.
- Optimal Substructure를 만족하기 때문에, 같은 문제는 구할 때마다 정답이 같음.
- 정답을 한 번 구했으면 그 값을 배열에 저장해둔다. (Memoization)
- 다이나믹 프로그래밍의 구현 방식에는 두 가지 방법이 있다.
- Top-down : 큰 문제부터 쪼개가면서 작은 문제를 만들고 합쳐가면서 원래 문제를 푸는 방식
- Bottom-up : 작은 문제들을 모아서 큰 문제 하나 만들고, 또 다시 반복해서 푸는 방식
- Top-down은 재귀 호출을 이용해서, Botton-up은 반복문을 이용해서 문제를 해결함.
- 다이나믹 프로그래밍 문제 풀이 전략
- 문제에서 구해야하는 것을 점화식으로 세우고
- 마지막 1단계가 무엇인지 찾고 (그 단계가 빠지면 문제가 작아지므로)
- 어떻게 변화가 되는지 보고 답을 찾는다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 블로킹
- 스택/큐
- http://www.nextree.co.kr/p6960/
- 코딩테스트 고득점 Kit
- Handler Interceptor
- 동기
- 필터
- blocking
- non-blocking
- 프로그래머스 Level 1
- 해시
- Asynchronous
- 핸들러 인터셉터
- Filter
- Synchronous
- 프로그래머스
- 비동기
- 프로그래머스 Level 2
- 인터셉터
- a
- 프로그래머스 Level 3
- 논블로킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함