[백준] 9507번. Generation of Tribbles

연성·2020년 11월 7일
0

코딩테스트

목록 보기
129/261

[백준] 9507번. Generation of Tribbles

1. 문제

꿍은 군대에서 진짜 할짓이 없다. 그래서 꿍만의 피보나치를 만들어보려고 한다. 기존의 피보나치는 너무 단순해서 꿍은 좀더 복잡한 피보나치를 만들어보고자 한다. 그래서 다음과 같은 피보나치를 만들었다. 꿍만의 피보나치 함수가 koong(n)이라고 할 때,

n < 2 :                         1
n = 2 :                         2
n = 3 :                         4
n > 3 : koong(n − 1) + koong(n − 2) + koong(n − 3) + koong(n − 4)

이다.

여러분도 꿍 피보나치를 구해보아라. 싫어요

2. 입력

입력의 첫 번째 줄을 테스트 케이스의 개수 t (0 < t < 69)가 주어진다. 다음 t줄에는 몇 번째 피보나치를 구해야하는지를 나타내는 n(0 ≤ n ≤ 67)이 주어진다.

3. 출력

각 테스트 케이스에 대해, 각 줄에 꿍 피보나치값을 출력하라.

4. 풀이

  • 또보나치
  • 68개 밖에 안 되서 미리 배열에 값을 다 구한 다음에 n을 입력 받으면 해당 인덱스의 값을 출력해주었다.

5. 코드

#include <iostream>
#include <algorithm>

using namespace std;

long long koong_fibo[68];

int main(void) {
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    
    koong_fibo[0] = 1;
    koong_fibo[1] = 1;
    koong_fibo[2] = 2;
    koong_fibo[3] = 4;

    for (int i = 4; i < 68; i++)
    {
        koong_fibo[i] = koong_fibo[i - 1] + koong_fibo[i - 2] + koong_fibo[i - 3] + koong_fibo[i - 4];
    }

    int testCase;
    cin >> testCase;

    for (int i = 0; i < testCase; i++)
    {
        int n;
        cin >> n;
        cout << koong_fibo[n] << "\n";
    }
}

0개의 댓글