From 2d5535fe97a06919efb57be4f457e1d3c873c721 Mon Sep 17 00:00:00 2001 From: sm4640 Date: Fri, 3 Apr 2026 17:13:14 +0900 Subject: [PATCH] =?UTF-8?q?2293-g4=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workbook_7319/gold/2293-g4.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 workbook_7319/gold/2293-g4.py diff --git a/workbook_7319/gold/2293-g4.py b/workbook_7319/gold/2293-g4.py new file mode 100644 index 0000000..58a9076 --- /dev/null +++ b/workbook_7319/gold/2293-g4.py @@ -0,0 +1,32 @@ +# 동전 1 + +import sys + +input = sys.stdin.readline + +def solution(): + n, k = map(int, input().rstrip().split()) + + dp = [0] * (k+1) + dp[0] = 1 + + for _ in range(n): + coin = int(input().rstrip()) + for i in range(coin, k+1): + dp[i] = dp[i-coin] + dp[i] + + print(dp[k]) + return + + +solution() + +""" +걸린 시간: 13분 + +시간 복잡도: 동전 개수(n)만큼 k 길이의 테이블을 업데이트 해야하기 때문에 O(n*k)이다. + +해설: 조합 조건으로 여러 동전을 활용해서 k 값을 만들어야 한다. +이는 순서를 정해줘야 하기 때문에 동전을 하나씩 쓰면서 전체 dp를 순회해야 한다. +1, 2, 5의 동전이 있다면 1 썼을 때 전체 dp, 2도 썼을 때 전체 dp 이런식으로.. (동전 사용 순서는 상관없다. 조합이니까 하나로만 정해지면 됨) +""" \ No newline at end of file