상세 컨텐츠

본문 제목

백준 파이썬 2748번

알고리즘 공부

by 독서와 여행 2020. 7. 24. 17:42

본문

def fibo(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibo(n-1) + fibo(n-2)
n = int(input())
print(fibo(n))      

처음에는 피보나치로 풀려고 했는데 시간초과가 났다.

c언어 배울 때 재귀함수가 겹쳐지면 상당히 부담이 된다고 들었는데 그래서

n = int(input())
if n >= 1:
    i = 1
    num = 1
    temp = 0
    while num <= n-1:
        ptemp = temp
        temp = i
        i = temp + ptemp 
        num += 1
    print(i)
else :
    print(0)

이렇게 구현해 버렸다. 좀 더럽기는 하지만... 그냥 앞에 0 1 1 이 부분만 예외처리 식으로 해버리고 

그 외에는 다 더하는 방식으로 했다.

'알고리즘 공부' 카테고리의 다른 글

백준 4949번 파이썬  (0) 2020.10.22
백준 파이썬 1003번  (0) 2020.09.10
백준 10814번 파이썬  (0) 2020.07.18
백준 1436번 파이썬  (0) 2020.07.17
백준 2798번 파이썬  (0) 2020.07.16

관련글 더보기

댓글 영역