DataScience/백준

1003번 문제풀이

mkk4726 2023. 6. 8. 13:58
 

피보나치 수열에 대한 문제이다.

recursive function(재귀함수), memoization, tuple, dict의 개념이 사용되었다.

풀이과정은 다음과 같다.

memo_dict = {}
memo_dict[0] = (1, 0)
memo_dict[1] = (0, 1)

def fibo(n: int):
  if (n in memo_dict.keys()):
    return memo_dict[n]
  else:
    result = (fibo(n-1)[0] + fibo(n-2)[0] , fibo(n-1)[1] + fibo(n-2)[1])
    memo_dict[n] = result 
    return result

  
n = int(input())
  
for i in range(n):
  result = fibo(int(input()))
  print(f"{result[0]} {result[1]}")