N 번째 피보나치 수에서 0과 1을 호출하는 횟수를 각각 출력한다.
import sys
n = int(sys.stdin.readline())
fibbo_nums = [(1,0),(0,1)]
for _ in range(n):
x = int(sys.stdin.readline())
if len(fibbo_nums) <= x:
for i in range(len(fibbo_nums), x+1):
fibbo_nums.append((fibbo_nums[i-2][0] + fibbo_nums[i-1][0], fibbo_nums[i-2][1] + fibbo_nums[i-1][1]))
print(' '.join(map(str,fibbo_nums[x])))
새로운 수를 입력받을 때마다 그 때 그 때 계산해주면 시간 초과가 걸린다.
fibbo_nums
에 계산이 완료된 값을 넣어주어 재사용이 가능하도록 했다.