아무래도 이거저거 좀 풀어보다보니 서술형 문제와 DP 쪽이 조금 약하다는 생각이 들어서 어떻게 할지 조금 고민하던 와중에 백준 온라인 저지가 있어서 이쪽을 좀 풀어보는 것이 좋겠다는 생각이 들어서 시작을 해본다.


피보나치 함수를 하나 주어주고, 해당되는 동작을 할 경우, 최종적으로는 0과 1로 나누어지게 되는데, 0과 1의 갯수를 출력하도록 구현하면 된다.



#include <iostream>


int g_arrBuf[2];

int fibonacci(int n)
{
	if (n == 0)
	{
		++g_arrBuf[0];
		return 0;
	}
	else if (n == 1)
	{
		++g_arrBuf[1];
		return 1;
	}
	else
	{
		return fibonacci(n - 1) + fibonacci(n - 2);
	}
}

void initBuffer(void)
{
	g_arrBuf[0] = 0;
	g_arrBuf[1] = 0;
}

int main()
{
	//! get input
	int nCnt = 0;
	int nCur = 0;

	scanf("%d", &nCnt);
	for (int i = 0; i < nCnt; ++i)
	{
		initBuffer();
		scanf("%d", &nCur);
		fibonacci(nCur);
		printf("%d %d\n", g_arrBuf[0], g_arrBuf[1]);
	}

    return 0;
}



기본 include까지 포함을 시켜야해서 쓸모없이 틀렸는데, 간만에 scanf를 사용하게 되었다;;;

'Programming > C,C++' 카테고리의 다른 글

[BOJ] 2579. 계단 오르기  (0) 2018.01.15
[BOJ] 1463. 1로 만들기  (0) 2018.01.15
[BOJ] 1003. 피보나치 함수  (0) 2018.01.15
[Codility] TieRopes  (0) 2018.01.07
[Codility] MaxNonoverlappingSegments  (0) 2018.01.07
[LeetCode] 100. Same Tree  (0) 2018.01.03

+ Recent posts