동적 프로그래밍
동적 프로그래밍은 이름부터 생소하다.
동적 프로그래밍은 다이내믹 프로그래밍이라고도 부르고
동적 계획법이라 부르기도한다.
동적 프로그래밍의 원리는 주어진 문제를 풀기 위해서
문제를 여러 개의 하위 문제로 나누어 푼 다음
그것을 결합하여 최종적인 답을 구하는 것이다.
동적 프로그래밍의 장점
동적 프로그래밍의 장점으로는 하위 문제의 해결을 계산한 뒤
그 해결책을 저장하여 후에 같은 하위 문제가 나왔을 경우
저장된 해결책을 재활용하여 간단하게 해결하여 내려가므로
계산 횟수를 줄일 수 있다.
저장된 해결책을 재활용하는 것을 메모 이제이 션이라고 부른다.
또한 프로그램을 구현할 때에 필요한 모든 가능성을 고려해서 구현하게 되기 때문에
동적 계획법을 이용하여 항상 최적의 결과를 얻을 수 있다.
동적 프로그래밍의 단점
동적 프로그래밍의 단점으로는 모든 가능성에 대한 고려가 불충분할 경우 최적의 결과를 보장할 수 없다.
또한 다른 방법론에 비해 많은 메모리 공간을 요구한다.
오늘은 토이 프로젝트를 진행하고 동적 프로그래밍에 대한 공부를 해보았다
확실하게 공부가 더 필요한 부분인 것 같다.
동적 프로그래밍은 장단점이 확실한 것 같다.
우선 하위 문제의 해결을 계산한 뒤 그 해결책을 저장한다는 것은
하위 문제를 적어도 한 번씩은 해결해야한다는 뜻이고
그 한번씩 해결한 해결책을 저장해 야하기 때문에 다른 방법론에 비해
많은 메모리 공간을 요구하고 모든 가능성을 고려해서 구현하는 방식인 만큼
모든 가능성을 고려하여 구현하게 되면 최적의 결과를 얻을 수 있지만
모든 가능성에 대한 고려가 불충분할 경우 최적의 결과를 보장할 수 없다는 것은
정말 장단점이 확실하게 딱 대비돼서 나타나는 것 같다.
알고리즘에 대한 공부도 필요하단 생각에 찾아보았지만
정말로 어려운 것 같다!
하지만 어렵다고 해서 피할 순 없다!
열심히 공부해야겠다✍️!!파이팅!!
'알고리즘' 카테고리의 다른 글
TIL] 알고리즘 문제 풀이 [백준] (2941, 2839, 1436) (0) | 2021.06.16 |
---|---|
TIL] 알고리즘 문제 풀이 [백준](1110 , 2586, 2884, 2941, 4344, 4673, 10869) (0) | 2021.06.15 |
TIL ] 스택 , 큐, 해쉬 (0) | 2021.06.13 |
TIL] (자료구조)링크드 리스트 (0) | 2021.06.13 |
TIL] 알고리즘 공부 (0) | 2021.06.12 |