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로 구현하면 시간 복잡도를 줄일 수 있다.
'코딩테스트 > 문제 풀이 - Python' 카테고리의 다른 글
[백준14503] 로봇 청소기 (1) | 2024.10.01 |
---|---|
[백준1620] 나는야 포켓몬 마스터 이다솜 (0) | 2024.09.09 |
[백준11723] 집합 (0) | 2024.09.09 |
[백준1012] 유기농 배추 (0) | 2024.09.09 |
[백준1926] 그림 (0) | 2024.08.26 |