반응형
SMALL

재귀 2

[Algorithms] 재귀적 프로그래밍(Recursive Programming)_2

재귀적 프로그래밍(Recursive Programming) 두번째 시간으로 n개의 원소를 가지는 집합에서 크기가 r인 부분집합을 고르는 경우의 수 즉, 이항계수를 작성해보겠다 이항계수를 식으로 나타내면 아래와 같다 위와 같이 재귀적으로 함수를 작성할 때에는 중복 계산이 발생해 효율이 나빠질 수 있으므로 주의해야하고 메모이제이션(memoization) 처리 등을 해줘야한다 위의 코드에서는 keep_result 배열에 처리 결과를 저장하고있다 이제 유명한 피보나치(Fibonacci) 수열을 작성해보자 먼저 피보나치(Fibonacci) 수열은 중복계산이 나타나므로 앞서 이항계수를 구할 때처럼 메모이제이션(memoization) 처리한다 참고로 동적 프로그래밍으로도 작성해보았다 그런데 메모이제이션을 통해서든 동..

Algorithms 2019.08.12

[Algorithms] 재귀적 프로그래밍(Recursive Programming)_1

지난 번에 연결리스트를 이용한 큐를 작성하였다 enqueue()함수를 통해 int형 값을 큐(Queue)에 저장하고 dequeue()함수를 통해 큐(Queue)에 저장된 순서대로 하나씩 출력하였는데 큐에 저장된 모든 원소(값)들을 모두 출력하고 싶다면 어떻게 해야할까? 가장 쉽게 떠올릴 수 있는 방법은 head node부터 차례로 출력하는 것이다 자, 그런데 제목이 재귀적 프로그래밍이다 이 dynamic_print_list()함수를 recursive_print_list()함수로 변경해보자 재귀적 프로그래밍(Recursive Programming)을 설명할 때 가장 많이 나오는 인용구는 GNU("GNU's Not Unix!")인데 GNU를 설명하기 위해 자기 자신을 이용하고있기 때문이다 사실 재귀적 프로그..

Algorithms 2019.08.12
반응형
LIST