코테 공부

백준 9095 1, 2, 3 더하기(python)

dnjswngo 2024. 11. 18. 12:58
def ccount(n):
    dp=[0]*(n+1)
    dp[0]=1
    if n>=1:
        dp[1]=1
    if n>=2:
        dp[2]=2
    if n>=3:
        dp[3]=4
    for i in range(4, n+1):
        dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
    return dp[n]
n=int(input())
arr= [int(input()) for _ in range(n)]
for i in arr:
    print(ccount(i))

 

def ccount(n, memo):
    if n<0:
        return 0
    if n==0:
        return 1
    if n in memo:
        return memo[n]
    memo[n]=ccount(n-1, memo)+ccount(n-2, memo)+ccount(n-3, memo)
    return memo[n]

n=int(input())
arr=[int(input()) for _ in range(n)]
for i in arr:
    print(ccount(i, {}))

 

위에꺼가 약간 더 빠르다

'코테 공부' 카테고리의 다른 글

백준 9935 문자열 폭발(python)  (0) 2024.11.19
백준 2579 계단오르기(python)  (0) 2024.11.18
백준 1463 1로 만들기(python)  (0) 2024.11.18
백준 7569 토마토(python)  (0) 2024.11.17
백준 2644번 촌수계산(python)  (0) 2024.11.17