[코딩테스트 준비 C++] 피보나치 함수

정우·2022년 8월 19일
0
post-thumbnail

오늘 푼 문제

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

피보나치 함수

  • 풀이 방식
    각각 0과 1을 저장하는 2차원 배열을 사용
    N이 0이면 0이 나오는 개수 1개, 1이 나오는 개수 0개
    N이 1이면 0이 나오는 개수 0개, 1이 나오는 개수 1개
    ...

나의 풀이

#include <iostream>
using namespace std;

int count1 = 0;
int count0 = 0;

int main() {

    int T; // Test case
    int N; // N <= 40 자연수 or 0

    int fibonacci[41][2] = { 0, };

    fibonacci[0][0] = 1;
    fibonacci[0][1] = 0;

    fibonacci[1][0] = 0;
    fibonacci[1][1] = 1;

    for (int i = 2; i < 41; i++) {
        fibonacci[i][0] = fibonacci[i - 1][0] + fibonacci[i - 2][0];
        fibonacci[i][1] = fibonacci[i - 1][1] + fibonacci[i - 2][1];
    }

    cin >> T;
    for (int i = 0; i < T; i++) {
        cin >> N;
        cout << fibonacci[N][0] << ' ' << fibonacci[N][1] << endl;
    }


    return 0;
}

vector를 이용해서 풀면 코드가 좀 더 깔끔해질 것 같다고 느꼈지만
직관성으로는 배열도 괜찮은 것 같다.

profile
개발 일기장

0개의 댓글