끄적거림

백준 2293번 본문

Python/알고리즘(코딩테스트)

백준 2293번

Signing 2022. 6. 26. 22:08
728x90
반응형

참고 : https://seongonion.tistory.com/108

 

 

# import numpy as np
# import collections as co

def getWays(n, c):
    # rc = [i for i in c if i <= n]
    """
    DP 문제는 결과값에 대한 분할로 생각하면 된다.
    DP문제에서는 주로 list를 사용하며, list의 마지막 값이 최종 결과값으로 산출된다.
    따라서 index가 순서로 여기고, list[index]가 index에 대한 결과값으로 생각하고 풀어보자.
    
    0<i<n일때, dp[i]는 i라는 수에 대한 경우의 수(정답)
    dp[n]이 최종 정답
    """
    dp = [0 for i in range(n+1)]        #
    dp[0] = 1               # dp[0]은 동전 1개만 사용했을 때
    print(dp)

    for coin in c:
        for i in range(coin, n+1):
            tmp = dp[i - coin]
            dp[i] += tmp
            print(dp)

    return dp


if __name__ == '__main__':
    # n = int(first_multiple_input[0])
    # m = int(first_multiple_input[1])
    # c = list(map(int, input().rstrip().split()))

    n = 4
    c = [1,2,3]

    ways = getWays(n, c)

    print(ways)

 

 

 

 

728x90
반응형
Comments