알고리즘 연습/동적 계획법
[🥈3 / 백준 9507 / 파이썬] Generations of Tribbles
김세진
2022. 1. 7. 15:48
반응형
꿍은 군대에서 진짜 할짓이 없다. 그래서 꿍만의 피보나치를 만들어보려고 한다. 기존의 피보나치는 너무 단순해서 꿍은 좀더 복잡한 피보나치를 만들어보고자 한다. 그래서 다음과 같은 피보나치를 만들었다. 꿍만의 피보나치 함수가 koong(n)이라고 할 때,

이다.
여러분도 꿍 피보나치를 구해보아라.
입력
입력의 첫 번째 줄을 테스트 케이스의 개수 t (0 < t < 69)가 주어진다. 다음 t줄에는 몇 번째 피보나치를 구해야하는지를 나타내는 n(0 ≤ n ≤ 67)이 주어진다.
출력
각 테스트 케이스에 대해, 각 줄에 꿍 피보나치값을 출력하라.
예제 입력8
0 1 2 3 4 5 30 67 |
예제 출력1
1 2 4 8 15 201061985 7057305768232953720 |
풀이
문제에 점화식이 주어져 있다.
피보나치 DP 문제와 크게 다를것이 없다.
입력에서 요구하는 n번째의 꿍 피보나치 수를 구하지 않았다면, 점화식을 바탕으로 DP를 통해 갱신하고 출력한다.
import sys
input = sys.stdin.readline
dp = [1,1,2,4]
for _ in range(int(input())):
n = int(input())
for i in range(len(dp)-1,n):
dp.append(dp[i]+dp[i-1]+dp[i-2]+dp[i-3])
print(dp[n])반응형