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