카테고리 없음

dp -백준 1003 피보나치 함수

FireStone 2019. 7. 27. 01:56

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

 

1003번: 피보나치 함수

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

www.acmicpc.net

0의 개수와 1의 개수가 i번째 일때 i-1과 i-2에서의 개수를 더한값이랑 같아서

그걸 이용해 풀었고 시간을 아끼기 위해 미리 0부터 40까지 구해놓고 바로 값을 받아 구하는 방법으로 풀었다.

#include<iostream>

using std::cin;
using std::cout;
using std::endl;


int main() {
	int TestCase = 0;
	cin >> TestCase;
	int num = 0;
	int num_zero[42];
	int num_one[42];

	num_zero[0] = 1;
	num_one[0] = 0;
	num_zero[1] = 0;
	num_one[1] = 1;
	for (int i = 2;i <= 40;i++) {
		num_zero[i] = num_zero[i - 2] + num_zero[i - 1];
		num_one[i] = num_one[i - 2] + num_one[i - 1];
	}
	for (int i = 0;i < TestCase;i++) {
		cin>>num;
		cout << num_zero[num] <<" "<< num_one[num]<<endl;
	}
	
}

첫번째 시도는 마지막에 endl을 안써서 틀렸다..진짜 바보인가