https://www.acmicpc.net/problem/1003
처음에는 1과 0의 개수의 규칙을 찾으려 헀는데, N이 되게 작아서, 그냥 처음 시작할때 배열에 40이하의 모든 피보나치 수의 0, 1 개수를 구하고, 입력에 따라 적절히 출력하는 방식으로 구현했다.
Python
def fibonacci(n):
global fibonacciList
if n == 0:
fibonacciList[n][0] += 1
elif n == 1:
fibonacciList[n][1] += 1
else:
fibonacciList[n][0] += fibonacciList[n-2][0] + fibonacciList[n-1][0]
fibonacciList[n][1] += fibonacciList[n-2][1] + fibonacciList[n-1][1]
fibonacciList = []
for i in range(41):
fibonacciList.append([0, 0])
fibonacci(i)
for _ in range(int(input())):
a = fibonacciList[int(input())]
print(f'{a[0]} {a[1]}')
C++
#include <iostream>
void fibonacci(int n, int fibonacciList[][2])
{
if(n == 0)
{
fibonacciList[n][0] = 1;
fibonacciList[n][1] = 0;
}
else if(n == 1)
{
fibonacciList[n][0] = 0;
fibonacciList[n][1] = 1;
}
else
{
fibonacciList[n][0] = fibonacciList[n-2][0] + fibonacciList[n-1][0];
fibonacciList[n][1] = fibonacciList[n-2][1] + fibonacciList[n-1][1];
}
}
int main()
{
int fibonacciList[41][2], loopNum, b;
for(int i = 0; i < 41; i++)
{
fibonacci(i, fibonacciList);
}
std::cin >> loopNum;
for(int i = 0; i<loopNum; i++)
{
std::cin >> b;
std::cout << fibonacciList[b][0] << ' ' << fibonacciList[b][1] << '\n';
}
return 0;
}
드디어 C++을 한번에 맞혔다!
'알고리즘 > BOJ' 카테고리의 다른 글
[Python]1194-달이 차오른다, 가자. (0) | 2020.08.10 |
---|---|
[Python&C++]7868-해밍 수열 (0) | 2020.07.11 |
[Python&C++]1037-약수 (0) | 2020.05.19 |
[Python&C++]1026-보물 (0) | 2020.05.18 |
[Python&C++]1032-명령 프롬포트 (0) | 2020.05.18 |
[Python&C++]1004-어린 왕자 (0) | 2020.05.18 |
[Python&C++]1002-터렛 (0) | 2020.05.18 |
[Python&C++]2490-윷놀이 (0) | 2020.05.18 |