http://acmicpc.net/problem/24416
24416번: 알고리즘 수업 - 피보나치 수 1
오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍
www.acmicpc.net
동적 프로그래밍 문제. 처음 접해봤는데, 재귀보다 호출 횟수가 현저히 적어서 신선했다.
문제는 간단해서 주어진 수도 코드를 구현하면 된다.
n = int(input())
count_1 = 0
count_2 = 0
def fib_r(n):
global count_1
if n == 1 or n == 2:
count_1 += 1
return 1
return fib_r(n-1) + fib_r(n-2)
def fib():
global count_2
count = 0
f = [1]* n
for i in range(2, n):
f[i] = f[i - 1] + f[i - 2]
count_2 += 1
fib_r(n)
fib()
print(count_1, count_2)
'Algorithms' 카테고리의 다른 글
백준 1904. 01타일 (0) | 2022.06.24 |
---|---|
백준 9184. 신나는 함수 실행 (0) | 2022.06.23 |
백준 14889. 스타트와 링크 (0) | 2022.06.21 |
백준 14888. 연산자 끼워넣기 (0) | 2022.06.20 |
백준 2580. 스도쿠 (0) | 2022.06.20 |
댓글