백준 1003번: 피보나치 함수

Jaemin_Eun·2023년 1월 10일

코딩 : 23년 1~2월

목록 보기
1/5

방학공부 1일차

방학을 맞이해서 코딩공부를 열심히 해야겠다는 생각을 했다.
새로운 마음으로 레포지토리도 만들고 포스팅도 열심히 해보자!

요즘 DP문제를 공부하고있어서 포스팅용으로 후다닥 한 문제 풀어봤다.

문제 : 백준 1003번
알고리즘 : DynamicProgramming

반복문으로 피보나치 함수를 구현하는 방법을 알고있다면 손쉽게 해결할 수 있다.

import sys
input = sys.stdin.readline

fibo_list = [[0,0] for i in range(41)]
fibo_list[0] = [1,0]
fibo_list[1] = [0,1]
#main
T = int(input()) #테스트케이스
for i in range(T):
    i = 2
    N = int(input()) #숫자
    if(N <= 1):
        print(fibo_list[N][0],fibo_list[N][1])
    else :
        while(i <= N):
            fibo_list[i][0] = fibo_list[i - 2][0] + fibo_list[i - 1][0]
            fibo_list[i][1] = fibo_list[i - 2][1] + fibo_list[i - 1][1]
            i += 1
        print(fibo_list[N][0],fibo_list[N][1])

포스팅하고 잘 생각에 조금 날림으로 쓴 것 같다.
전형적인 DP의 형태를 보이는 코드.
2차원 리스트로 N마다 두 개의 정수 값을 부여했다.

종합 평가

시간복잡도 : avr = O(n)
소요 시간 : 5분이하
실패 횟수 : 0

0개의 댓글