알고리즘
[백준(baekjoon)] 피보나치 함수 (C/C++)
Code Bomber
2021. 1. 14. 23:35
문제 링크 : www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
그렇게 어려운 문제는 아닌 것 같은데 문제 번호가 앞 번호다 보니 정답률이 낮은 것 같다.
pair를 써서 first는 0을 출력한 횟수, second는 1을 출력한 횟수로 사용하여 문제를 풀었다.
fibonacci 0번째 1번째는 입력해 주고
2번째 부터는 index-1 index-2 위치의 값을 더해주어 먼저 40번째까지 선 계산 후에
입력 값을 받아 출력해 주었다.
#include <iostream>
using namespace std;
pair<int, int> fibonacci[41];
int main() {
fibonacci[0] = {1, 0};
fibonacci[1] = {0, 1};
for(int i = 2; i <= 40; i++) {
fibonacci[i].first = fibonacci[i - 1].first + fibonacci[i - 2].first;
fibonacci[i].second = fibonacci[i - 1].second + fibonacci[i - 2].second;
}
int count;
cin >> count;
for(int testCase = 0; testCase < count; testCase++) {
int index;
cin >> index;
cout << fibonacci[index].first << " " << fibonacci[index].second << endl;
}
}