본문 바로가기
개발/알고리즘

[백준] #2747 피보나치 수

by 김개발 2020. 10. 28.

www.acmicpc.net/problem/2747

 

2747번: 피보나치 수

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된

www.acmicpc.net

n = int(input())
mem = [0]*(n+1)
def F(num):
    if mem[num] > 0:
        return mem[num]
    if num == 0 or num == 1:
        return num
    mem[num] = F(num-1) + F(num-2) 
    return mem[num]
print(F(n))

* 재귀함수를 이용해서 풀었다

n = int(input())
a, b = 0, 1
while n>0:
    a, b = b, a+b
    n-=1
    
print(a)

* 파이썬의 swap 식으로 풀었다

'개발 > 알고리즘' 카테고리의 다른 글

[시간초과][백준] #2751 수 정렬하기2  (0) 2020.10.29
[시간초과][백준] #1074 Z  (0) 2020.10.29
[백준] #10989 수 정렬하기  (0) 2020.10.28
[백준] #11650 좌표 정렬하기  (0) 2020.10.28
[백준] #10814 나이순 정렬  (0) 2020.10.28

댓글