www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

#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

+ Recent posts