반응형
DP란?
: 답을 재활용해서 다시 사용해 비효율적인 계산을 줄인다.
한 번의 계산을 통해 답을 구한다.
현재의 답을 구하기 위해서 전에 구해놨던 답을 이용해서 구한다.
피보나치 수열이 대표적인 예
2가지 방법이 있다.
1. Top-down
위에서 아래로 내려오는 것, 큰 문제를 작은 문제로 나누어 푸는 것이다.
피보나치 수열을 예로 들어 설명하자면
네 번째 피보나치 수열을 구하기 위해서는 두 번째 피보나치 수열과 세 번째 피보나치 수열이 필요하다.
또 세 번째 피보나치 수열을 구하기 위해서는 첫 번째 피보나치 수열과 두 번째 피보나치 수열이 필요하다.
이렇게 큰 문제를 작은 문제로 나눌 수 있다.
2. Bottom-up
아래에서 위로 올라가는 것, 작은 문제부터 시작해 점점 큰 문제를 풀어나가는 것이다.
첫 번째 피보나치 수열을 구하고 두 번째 피보나치 수열을 구하면 세 번째 피보나치 수열을 구할 수 있다.
반응형
'알고리즘' 카테고리의 다른 글
DFS (0) | 2020.05.01 |
---|---|
슬라이딩 윈도우(Sliding Window) (0) | 2020.04.19 |
투 포인터(Two Pointers) (0) | 2020.04.18 |
플러드 필(Flood Fill) - BFS , DFS (0) | 2020.04.18 |
최단 경로 문제 : 플로이드-워셜 알고리즘 (0) | 2020.04.18 |
댓글