피보나치 수열은 재귀식으로 너무 유명하다


f(0) = 0

f(1) = 1

f(n) = f(n-1) + f(n-2)


인데, 이걸 재귀식으로 하여 돌리면 실제론 무진장 오래 걸린다.


기본적으로 함수가 실행되면 stack으로 쭉쭉 위에 쌓이기 때문에 좀만 큰 숫자를 넣으면 동작이 안될것이다.


이럴땐 간단히 동적프로그래밍을 통해서 구현할 수 있다.

동적프로그래밍의 핵심은 기억해놓는것, 저 멀리 있는거를 나중에 가져오는게 아니니까 미리미리..


파이썬 코드로 하면 이러하다


a = 0;

b = 1;

for i in range num:

a, b = b, a+b;

return b


우리가 필요로 한건 앞에 두개의 숫자만 필요로 하니까 주구장창 두개만...사용.


동적프로그래밍 개념을 알아도 실제로 적용하는 것은 매우 힘들다. 후

'1일 1문제, 프로그래머스' 카테고리의 다른 글

레벨2) 최고의 집합  (0) 2018.06.23
최고의 집합  (0) 2018.06.23
끝말잇기, 18년 섬머 문제?  (0) 2018.06.15
땅따먹기, 프로그래머스  (0) 2018.06.13
문자열 내림차순 배열..  (0) 2018.06.12

+ Recent posts