Algorithm/python 백준
파이썬 백준 1003번 : 피보나치 함수
✿(๑❛ڡ❛๑)✿
2024. 4. 7. 22:55
728x90
SMALL
문제
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
풀이
다이나믹 프로그래밍을 이용해서 해결했다.
N일때 0의 호출은 N-1의 1의 호출과 동일하다.
import sys
d=[0]*41 # 계산된 결과를 저장하기 위한 DP 테이블
d[1]=1 # 첫 번째 피보니치 수
d[2]=1 # 두 번째 피보나치 수
T = int(sys.stdin.readline())
for _ in range(T):
N = int(sys.stdin.readline())
for i in range(3,N+1): # 3번째 부터 N번째 까지 피보니치 수 계산
d[i]=d[i-1]+d[i-2]
# 0이 호출된 수와 1이 호출된 수 출력
if N==0:
print('1',end=' ')
else:
print(d[N-1],end=' ')
print(d[N])
728x90
LIST