반응형
문제
꿍은 군대에서 진짜 할짓이 없다. 그래서 꿍만의 피보나치를 만들어보려고 한다. 기존의 피보나치는 너무 단순해서 꿍은 좀더 복잡한 피보나치를 만들어보고자 한다. 그래서 다음과 같은 피보나치를 만들었다. 꿍만의 피보나치 함수가 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])
반응형
'알고리즘 연습 > 동적 계획법' 카테고리의 다른 글
[🥈4 / 백준 10826 / 파이썬] 피보나치 수 4 (0) | 2022.04.04 |
---|---|
[🥉1 / 백준 13301 / 파이썬] 타일 장식물 (0) | 2022.02.19 |
[🥈2 / 백준 15990 / 파이썬] 1, 2, 3 더하기 5 (0) | 2022.01.02 |
[🥈2 / 백준 11722 / 파이썬] 가장 긴 감소하는 부분 수열 (0) | 2021.12.20 |
[🥇5 / 백준 2631 / 파이썬] 줄세우기 (0) | 2021.12.06 |