-
[Python] 백준 9095번: 1, 2, 3 더하기 풀이
소스코드 T = int(input()) for i in range(T): dp = [0,1,2,4] n = int(input()) for j in range(4,n+1): dp.append(dp[j-3] + dp[j-2] + dp[j-1]) print(dp[n]) 0 -> 0개 1 = 1 -> 1개 2 = 1 +1 -> 2개 = 2 3 = 1 + 2 -> 4개 = 2 + 1 = 3 = 1 + 1 + 1 까지는 쉽게 구할 수 있다. 그렇다면 4는? 크게 세 가지 방법으로 1 + 3 / 2 + 2 / 3 + 1 이 있다. 왜냐면 1,2,3의 합으로 표시를 하는 것이므로 항상 1 + (n-1) / 2 + (n-2) / 3 + (n-3) 으로 구할 수 있는 것이다!! 그렇다면 밑줄 친 3, 2, 1 을 또 여러..
알고리즘/동적프로그래밍(DP)
2021. 1. 21.