개인 공부/자료구조, 알고리즘2 [알고리즘] 동적 프로그래밍, 다이나믹 프로그래밍, DP :: seoftware 정의 동적 프로그래밍은 큰 문제의 해답에 작은 문제의 해답이 포함(최적부분구조)되어 있고, 이를 재귀호출 알고리즘으로 구현하면 지나친 중복이 발생하는 경우에 이 재귀적 중복을 해결하는 방법을 뜻한다. 정의로 유추할 수 있는 것 -> 최적부분구조가 발견되고, 재귀를 사용했을 때 중복 호출이 많을 때는 DP를 사용한다! 예시 - 피보나치 int fibo(int n) { if(n == 0) return 0; else if(n == 1) return 1; else return fibo(n-1) + fibo(n-2); } 코드는 간단해보이지만 중복 호출이 많기 때문에 비효율적이다. fibo(7)을 호출하면 fibo(2)가 몇번이나 호출되는지 확인해보자 fibo(7)을 구하기 위해 f.. 2020. 2. 20. [자료구조][재귀 Recursion] 팩토리얼 , 피보나치 , 하노이탑 :: seoftware 윤성우의 열혈 자료구조를 참고하여 쓰는 글입니다. 오늘부터 열심히 살려고 블로그 글 처음 쓰는데,, 실수로 뒤로가기 버튼 눌러버림,, 없어짐,, 눈물남,, 이제는 간단하게 쓸거야ㅜㅜ 정의 재귀함수란 함수 내에서 자기 자신을 다시 호출하는 함수를 의미한다. 더보기 void Recursive(void) { cout 2020. 2. 8. 이전 1 다음