[백준 2294] 동전 2 (자바)
알고리즘/백준

[백준 2294] 동전 2 (자바)

반응형

백준 2294번 동전 2 (자바)

 

 

 

출처

www.acmicpc.net/problem/2294

 

2294번: 동전 2

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주

www.acmicpc.net

 

 

 

문제

n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다.

사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다.

 

 

 

입력

첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다.

 

 

 

출력

첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다.

 

 

 

입출력 예

입출력 예 1

 

 

 

접근 방법

기존 동전 1 문제에서 사용했던 방법을 이용해 동전의 최소 개수를 구하면 된다.

최소 개수를 구하는 것이기 때문에 min 함수를 사용하고, 각 경우마다 +1을 하여 값을 비교한다.

 

점화식 : dp[j] = min(dp[j], dp[j-coin[i]] + 1)

 

 

 

내 코드

 

 

 

고려할 점

1. 규칙을 찾아 점화식을 세울 것

2. 직접 써보며 규칙을 찾을 것

3. 동전 공식을 사용할 것

 

반응형