[백준 1003번 실버3] 피보나치 (DP/파이썬)

밀루·2023년 3월 31일
0

백준 문제풀이

목록 보기
14/51

t = int(input())

def dp(n):
    dplog1 = [0, 1]
    dplog0 = [1, 0]
    if n > 1:
        for i in range(n-1):
            dplog1.append(dplog1[-1]+dplog1[-2])
            dplog0.append(dplog0[-1]+dplog0[-2])
    
    return dplog0[n], dplog1[n]
    
for _ in range(t):
    n = int(input())
    print(dp(n)[0], dp(n)[1])

문제 자체는 쉬웠지만 은근히 해결방법을 고민하게 만들었다.
dp 실행시마다 dplog를 초기화하고 dp에 append하는 방식으로 설계했다.

profile
벨로그에 틀린 코드나 개선할 내용이 있을 수 있습니다. 지적은 언제나 환영합니다.

0개의 댓글