-
[고급-5] 동적표와 상/하향식 설계강의 2016. 12. 19. 00:06반응형
학습 목표 :
1. 동적표를 활용하여 알고리즘의 효율을 높일 수 있다.
2. 동적표를 이용하여 상/하향식으로 알고리즘을 설계할 수 있다.
1. 동적표
표에서 하나의 값을 이용해 나머지 칸을 차례차례 채워가는 것.
예제 ) 10칸의 표를 만들고 k번째 칸에는 1부터 k까지의 합을 기록한 표를 만들기.
풀이 )
<방법 1> 수학적인 식 이용. n(n+1)/2 = 1~n까지의 합
<방법 2> 동적으로 표 채우기.
T[k] = 1+2+3+...+(k-1)+k
T[k-1] = 1+2+3+...+(k-1)
=>T[k]=T[k-1]+k
예제 ) 피보나치 수열.
반복적으로 계산된 것들을 모아둔 표를 생성해서 참고한다.
2. 상향식 설계와 하향식 설계
(1) 반복문에서 보면...
상향식 : for(i=0; i<n; ++i)
하향식 : for(i=n; i>=1; --i)
(2) 재귀함수
상향식 : void f(int k){ if( ~~~ ) return; f(k+1); }
하향식 : void f(int k){ if( ~~~ ) return; f(k-1); }
예제 ) 1~n까지의 합.
첫번째 값에서 출발. n번째 값 = n-1번째 값 + n
반복문을 이용하는 방법과 재귀함수를 이용하는 방법, 그리고 T[k]를 굳이 선언하지 않고 변수로 선언해도 별로 상관이 없다는 것을 이용한 방법.
반응형'강의' 카테고리의 다른 글
[고급-7] 동적테이블 응용2 (0) 2017.01.09 [고급-6] 동적 테이블의 응용1 (0) 2016.12.19 [고급-4] 재귀함수의 확장 (0) 2016.11.27 [고급-3] 재귀함수의 활용 (0) 2016.11.27 [고급-2] 재귀함수의 설계 (0) 2016.11.27