본문 바로가기

알고리즘/python

[python/파이썬] 백준 24416 알고리즘 수업 - 피보나치 수 1

반응형

[문제 출처]

https://www.acmicpc.net/problem/24416

 

24416번: 알고리즘 수업 - 피보나치 수 1

오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍

www.acmicpc.net

 

[소스 코드]

python3로 제출을 하면 시간 초과가 나오기 때문에 PyPy3로 제출해야 한다.

#254416
count = [1, 0]

def fib(n):
  count[0] += 1
  if n==1 or n==2:
    count[0]-=1
    return 1
  else:
    return fib(n-1) + fib(n-2)

def fibonacci(n):
  f = [0,1,1]
  if n>2:
    for i in range(3, n+1):
      count[1] += 1
      f.append(f[i-1] + f[i-2])

  return f[n]

n = int(input())
fib(n)
fibonacci(n)
print(*count)
반응형