300x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- OS
- PYTHON
- kick start
- 동적프로그래밍
- AI
- CSS
- 코딩테스트
- 순열
- 네트워크
- linux
- 딥러닝
- nlp
- 리눅스
- 킥스타트
- google coding competition
- 알고리즘
- 프로그래머스
- 운영체제
- DFS
- 코딩
- 파이썬
- BFS
- 백준
- 코딩 테스트
- 프로그래밍
- 구글 킥스타트
- dp
- 동적 프로그래밍
- 브루트포스
- 그래프
Archives
- Today
- Total
목록Dynamic Programming (1)
오뚝이개발자

Dynamic programming이란? 일반적으로, 분할정복 알고리즘과 유사하게 큰 문제를 더 작은 문제로 나누어 푸는 기법(역시 최적해를 찾는데 사용되는 경우가 많다.) 결정적인 차이점은 다음과 같다. 동적 프로그래밍의 경우 작은 문제들이 반복된다.(피보나치의 경우 f(5)를 구하기 위해선 f(4),f(3)이 필요한데 f(4)를 구하기 위해 f(3)이 다시 필요하다.) 동적 프로그래밍의 경우 작은 문제들의 답이 항상 같다는 것이다. 따라서, 위의 경우처럼 반복되는 계산을 줄이기 위해 메모이제이션(Memoization)을 사용 실제로 피보나치 수열을 구하는 함수를 구현할 때, 재귀로 구현하게 되면 반복되는 계산으로 인해 수가 커지면 실행시간이 아주 오래 걸리지만, 동적 프로그래밍으로 구현하면 금방 해결..
CS 기초/자료구조 및 알고리즘
2020. 10. 27. 15:36