From 2925d3c224d54a0dc0d332757918ea83ef7a8be1 Mon Sep 17 00:00:00 2001 From: SSUM <116950962+ssum21@users.noreply.github.com> Date: Wed, 7 Jan 2026 21:21:38 +0900 Subject: [PATCH] =?UTF-8?q?[Gold=20V]=20Title:=20=EB=8F=99=EC=A0=84=202,?= =?UTF-8?q?=20Time:=20232=20ms,=20Memory:=2033432=20KB=20-BaekjoonHub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 백준/Gold/2294. 동전 2/README.md | 28 ++++++++++++++++++++++++++++ 백준/Gold/2294. 동전 2/동전 2.py | 19 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 백준/Gold/2294. 동전 2/README.md create mode 100644 백준/Gold/2294. 동전 2/동전 2.py diff --git a/백준/Gold/2294. 동전 2/README.md b/백준/Gold/2294. 동전 2/README.md new file mode 100644 index 0000000..db12b47 --- /dev/null +++ b/백준/Gold/2294. 동전 2/README.md @@ -0,0 +1,28 @@ +# [Gold V] 동전 2 - 2294 + +[문제 링크](https://www.acmicpc.net/problem/2294) + +### 성능 요약 + +메모리: 33432 KB, 시간: 232 ms + +### 분류 + +다이나믹 프로그래밍 + +### 제출 일자 + +2026년 1월 7일 21:21:28 + +### 문제 설명 + +
n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다.
+ +### 입력 + +첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다.
+ +### 출력 + +첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다.
+ diff --git a/백준/Gold/2294. 동전 2/동전 2.py b/백준/Gold/2294. 동전 2/동전 2.py new file mode 100644 index 0000000..54e5cfd --- /dev/null +++ b/백준/Gold/2294. 동전 2/동전 2.py @@ -0,0 +1,19 @@ +import sys +input = sys.stdin.readline + +max_value = sys.maxsize + +n, k = map(int, input().split()) +value = [] +for _ in range(n): + value.append(int(input())) + +dp = [max_value] * (k + 1) +dp[0] = 0 + +value = sorted(set(value)) +for v in value: + for i in range(v, k + 1): + if dp[i - v] + 1 < dp[i]: + dp[i] = dp[i - v] + 1 +print(dp[k] if dp[k] != max_value else -1) \ No newline at end of file