https://www.acmicpc.net/problem/1003
시간 0.25초, 메모리 128MB
input :
output :
피보나치 함수가 수행될 때 마다, 0과 1이 호출되는 횟수를 출력하는 것이다.
맨 처음엔 그냥 함수를 수행해서 기록하게 했음 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그러니까 당연히 시간이 초과 돼지.(돼지)
0과 1이 호출되는 횟수도 피보나치 함수의 점화식과 동일하게 증가한다. 그래서 이를 DP로 저장해놓고 출력하자.
import sys
data = [[0] * 41 for i in range(2)]
data[0][0] = 1
data[1][0] = 0
data[0][1] = 0
data[1][1] = 1
data[0][2] = 1
data[1][2] = 1
for i in range(3, 41):
data[0][i] = data[0][i - 1] + data[0][i - 2]
data[1][i] = data[1][i - 1] + data[1][i - 2]
t = int(sys.stdin.readline())
for i in range(t):
n = int(sys.stdin.readline())
print(data[0][n], data[1][n])