#include <iostream>
using namespace std;
int t, n;
// 각각 0의 횟수와 1의 횟수들을 담아놓을 배열
int zero[41] = {1, 0, };
int one[41] = {0, 1, };
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
// 피보나치 함수 호출에서 0번과 1번 호출은 결국 똑같은 로직
for(int i = 2 ; i < 41 ; i++)
{
zero[i] = zero[i-1] + zero[i-2];
one[i] = one[i-1] + one[i-2];
}
cin >> t;
for(int i = 0 ; i < t ; i++)
{
cin >> n;
cout << zero[n] << " " << one[n] << '\n';
}
}
[Try]
1. 시간이 0.25초라 재귀는 당연히 아니고 최대값값도 40까지만 들어오니까 그냥 처음에 다 구해놓는게 효율적인 것 같다
[Point]
1. 0 과 1의 갯수가 피보나치 값들과 패턴이 같다? (11772822)
'PS > BOJ' 카테고리의 다른 글
[백준] 1463.cpp : 1로 만들기 (0) | 2020.05.30 |
---|---|
[백준] 6064.cpp : 카잉 달력 (0) | 2020.05.29 |
[백준] 11727.cpp : 2 x n 타일링 2 (0) | 2020.05.27 |
[백준] 1931.cpp : 회의실배정 (0) | 2020.05.27 |
[백준] 11724.cpp : 연결 요소의 개수 (0) | 2020.05.27 |