본문 바로가기
Algorithms

백준 24416. 알고리즘 수업 - 피보나치 수 1

by Brian Go 2022. 6. 22.

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

댓글