Programming Language Training/Python

Baekjoon Training #10870

생각하는 이상훈 2022. 7. 29. 03:33
728x90

#10870

a = int(input())
num_list = [0,1]

for i in range(2, a+1):
    num = num_list[i-1] + num_list[i-2]
    num_list.append(num)
print(num_list[num])

우선 친숙한 for문을 이용하여 코드를 작성해 보았다.

0,1이 들어있는 num_list를 만들고 for문을 이용하여 입력한 번호 a에 따라 a-2인덱스의 숫자와 a-1인덱스의 숫자를 더하여 num을 num_list에 append해주어 피보나치 수열을 구현하였다. 하지만 이 문제의 의도는 재귀함수를 이용하는 것이어서 다른 방법을 고안하였다.

 

def fibonacci(a):
    if a <= 1:
        return a
    return fibonacci(a-1) + fibonacci(a-2)

a = int(input())
print(fibonacci(a))

fibonacci(a)의 return값을 fibonacci(a-1)+fibonacci(a-2)로하여 재귀함수의 특성을 이용하여 풀어냈다.


 

728x90