ps:problems:boj:2293
                동전 1
| ps | |
|---|---|
| 링크 | acmicpc.net/… | 
| 출처 | BOJ | 
| 문제 번호 | 2293 | 
| 문제명 | 동전 1 | 
| 레벨 | 골드 5 | 
| 분류 | 
 DP  | 
	
| 시간복잡도 | O(nk) | 
| 인풋사이즈 | n<=100, k<=10000 | 
| 사용한 언어 | Python 3.11 | 
| 제출기록 | 31256KB / 112ms | 
| 최고기록 | 96ms | 
| 해결날짜 | 2023/09/13 | 
풀이
- 동전 교환 가짓수 문제의 표준적인 문제. 풀이는 그쪽 참고. DP를 이용해서 O(nk)에 풀수 있다.
 
코드
"""Solution code for "BOJ 2293. 동전 1".
- Problem link: https://www.acmicpc.net/problem/2293
- Solution link: http://www.teferi.net/ps/problems/boj/2293
Tags: [knapsack]
"""
def main():
    n, k = [int(x) for x in input().split()]
    coins = [int(input()) for _ in range(n)]
    dp = [0] * (k + 1)
    dp[0] = 1
    for coin in coins:
        for i, dp_prev in zip(range(coin, k + 1), dp):
            dp[i] += dp_prev
    print(dp[k])
if __name__ == '__main__':
    main()
ps/problems/boj/2293.txt · 마지막으로 수정됨: 2025/03/12 14:28 저자 teferi
                
                
토론