기타/코딩테스트

[Python]백준 1003번 - 피보나치 함수

lazy man 2023. 3. 27. 22:03

1. 문제정보

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

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

 

2.해결전략

피보나치는 전형적인 다이나믹 프로그래밍 문제입니다. 문제에 친절하게 점화식이 나왔기 때문에 구현만 하면됩니다.

 

 

3. 코드

t = int(input())

dp = [[0 for j in range(2)] for i in range(41)]

dp[0] = [1, 0]
dp[1] = [0, 1]
for _ in range(t):
    n = int(input())
    for i in range(2, n+1):
        dp[i] = [dp[i-1][0] + dp[i-2][0], dp[i-1][1] + dp[i-2][1]]
    
    print(dp[n][0], dp[n][1])