🔺 문제
2294번: 동전 2
첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import java.util.*;
import java.io.*;
public class Main {
public final static int MAX = 100001;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int dp[] = new int[k + 1]; // dp[i] : 값 i를 만들기 위한 최소 동전 개수
Arrays.fill(dp, MAX);
dp[0] = 0; // 처음은 0!!
int coin[] = new int[n + 1]; // 동전 배열
for(int i = 1 ; i <= n ; i++) {
coin[i] = Integer.parseInt(br.readLine());
for(int j = coin[i] ; j <= k ; j++) {
dp[j] = Math.min(dp[j], dp[j - coin[i]] + 1);
}
}
System.out.println(dp[k] == MAX ? -1 : dp[k]);
br.close();
}
}
|
cs |
✅ 해결 아이디어
✔ DP
- dp[ i ] : 값 i를 만들기 위한 최소 동전 개수
💥 유의사항
• dp[0]의 값은 0이어야 함.
🔺 다른 풀이들
- 과정 (복습용)
백준 2294번 동전 2(JAVA)
문제 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동
bangsj1224.tistory.com
[Java] [백준 2294][DP] 동전 2
문제 n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수
namhandong.tistory.com
💬 느낀 점
앗... 약간 감이 잡힐랑말랑...
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[알고리즘] - 백준 2294번 : 동전2 (JAVA)
문제 풀러가기입력받은 k 길이 만큼의 배열을 Integer.MAX_VALUE로 초기화.배열을 k길이만큼 만드는 이유는 배열의 인덱스를 입력받은 동전으로 만들어야 하는 가치라고 생각하기 위해 ex) dp3은 3의
velog.io
[Java] 백준 2294 : 동전 2
문제 링크 1. 이전에 풀었던 동전 1과 유사한 문제. 해당 문제의 풀이를 보고 복습하며 풀었다. 2. 동전 1 문제의 해설을 보고 이 해설을 보도록 하자. 차이점은 동전 1에서는 k 원을 만들 수 있는
squareyun.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 1038번: 감소하는 수 (0) | 2023.05.24 |
---|---|
[백준/JAVA] 2667번: 단지번호붙이기 (0) | 2023.05.24 |
[백준/JAVA] 2293번: 동전 1 (0) | 2023.05.23 |
[백준/JAVA] 3085번: 사탕 게임 (0) | 2023.05.23 |
[백준/JAVA] 16916번: 부분 문자열 (0) | 2023.05.22 |