본문 바로가기
알고리즘/BOJ

[Python] 백준 9084 동전

by PIAI 2021. 10. 5.

https://www.acmicpc.net/problem/9084

 

9084번: 동전

우리나라 화폐단위, 특히 동전에는 1원, 5원, 10원, 50원, 100원, 500원이 있다. 이 동전들로는 정수의 금액을 만들 수 있으며 그 방법도 여러 가지가 있을 수 있다. 예를 들어, 30원을 만들기 위해서는

www.acmicpc.net

1. 배낭 문제이다. 점화식은 현재까지 가능한 개수에 현재 동전을빼준값에 가능한 개수를 더한다.

dp[i] = dp [i] + dp [j-x]이다.

T = int(input())

while T:
    T -= 1
    n = int(input())
    coin = [0] + list(map(int, input().split()))
    goal = int(input())
    dp = [0 for _ in range(goal+1)]
    dp[0] = 1
    for i in range(1, n+1):
        for j in range(coin[i], goal+1):
            dp[j] += dp[j-coin[i]]

    print(dp[goal])

'알고리즘 > BOJ' 카테고리의 다른 글

[Python] 백준 2056번: 작업  (0) 2021.10.06
[Python] 백준 20040번: 사이클 게임  (0) 2021.10.06
[Python] 백준 7579: 앱  (0) 2021.10.04
[Python] 백준 5582: 공통 부분 문자열  (0) 2021.10.04
[Python] 백준 14226: 이모티콘  (0) 2021.10.04

댓글