Skip to content

Commit 8515376

Browse files
authored
[20250211] BOJ / 골드5 / 창영이와 커피 / 신동윤
1 parent 666870f commit 8515376

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
```java
2+
package BOJ;
3+
4+
import java.io.*;
5+
import java.util.*;
6+
7+
public class Main {
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
11+
12+
StringTokenizer st = new StringTokenizer(br.readLine());
13+
int N = Integer.parseInt(st.nextToken());
14+
int K = Integer.parseInt(st.nextToken());
15+
16+
int[] cups = new int[N+1];
17+
st = new StringTokenizer(br.readLine());
18+
for (int i = 1; i < N+1; i++) {
19+
cups[i] = Integer.parseInt(st.nextToken());
20+
}
21+
22+
// dp[i][j] = 카페인 i를 채우기 위해 커피 j까지 고려했을 때 최소 잔 수
23+
int[][] dp = new int[K+1][N+1];
24+
25+
// 초기화
26+
int maxCups = 101;
27+
for (int i = 0; i < K+1; i++) {
28+
for (int j = 0; j < N+1; j++) {
29+
if (i == 0) {
30+
dp[i][j] = 0;
31+
continue;
32+
}
33+
dp[i][j] = maxCups;
34+
}
35+
}
36+
37+
for (int caffeine = 1; caffeine < K+1; caffeine++) {
38+
for (int coffee = 1; coffee < N+1; coffee++) {
39+
// coffee번째 커피를 마시는 경우
40+
if (caffeine - cups[coffee] >= 0) {
41+
dp[caffeine][coffee] = Integer.min(dp[caffeine][coffee], dp[caffeine-cups[coffee]][coffee-1] + 1);
42+
}
43+
// coffee번째 커피를 마시지 않는다면, caffine을 채우기 위해 coffee-1번째 커피까지 고려했을 때의 최소값이 dp[caffeine][coffee]가 됨
44+
dp[caffeine][coffee] = Integer.min(dp[caffeine][coffee], dp[caffeine][coffee-1]);
45+
}
46+
}
47+
48+
int answer = maxCups;
49+
for (int coffee = 1; coffee < N+1; coffee++) {
50+
if (dp[K][coffee] < answer) {
51+
answer = dp[K][coffee];
52+
}
53+
}
54+
if (answer == maxCups) {
55+
answer = -1;
56+
}
57+
bw.write(answer + "\n");
58+
59+
br.close();
60+
bw.flush();
61+
bw.close();
62+
}
63+
}
64+
65+
```

0 commit comments

Comments
 (0)