CodingTest/solved - Python
[백준1003] 피보나치 함수
dayae_dev
2024. 9. 9. 19:05
https://www.acmicpc.net/problem/1003
문제 해결 방법
재귀함수 혹은 DP를 활용한다.
코드 구현
정답 코드
import sys
input = sys.stdin.readline
t = int(input())
def fibonacci(n, count):
if n<=1:
if n ==0:
count[0]+=1
if n==1:
count[1]+=1
print(count[0], count[1])
return n
a = 0
b = 1
for i in range(2, n+1):
c = a + b
a = b
b = c
print(a, b)
return b
for i in range(t):
n = int(input())
count = [0, 0]
fibonacci(n, count)
# 0 1 1 2 3 5 8
시간/공간 복잡도
O(n)
최적화 및 개선
- 피보나치 함수 알고리즘을 구현할 때, 재귀함수로 구현후 시간 초과가 나면 DP로 구현하면 시간 복잡도를 줄일 수 있다.