Skip to content

Commit 67e378c

Browse files
committed
BOJ_1495 : 기타리스트
1 parent bce2da9 commit 67e378c

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

week6/BOJ_1495(기타리스트).java

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class Main {
5+
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
StringTokenizer st = new StringTokenizer(br.readLine());
9+
int N = Integer.parseInt(st.nextToken());
10+
int S = Integer.parseInt(st.nextToken());
11+
int M = Integer.parseInt(st.nextToken());
12+
int[] volume = new int[N + 1];
13+
st = new StringTokenizer(br.readLine());
14+
for (int i = 1; i <= N; i++) {
15+
volume[i] = Integer.parseInt(st.nextToken());
16+
}
17+
boolean[][] d = new boolean[N + 1][M + 1];
18+
d[0][S] = true;
19+
for (int i = 1; i <= N; i++) {
20+
for (int vol = 0; vol <= M; vol++) {
21+
// 이전에 곡에서 연주 가능한 볼륨일 경우
22+
if (d[i - 1][vol]) {
23+
if (vol + volume[i] <= M) {
24+
d[i][vol + volume[i]] = true;
25+
}
26+
if (vol - volume[i] >= 0) {
27+
d[i][vol - volume[i]] = true;
28+
}
29+
}
30+
}
31+
}
32+
int answer = -1;
33+
for (int i = M; i >= 0; i--) {
34+
if (d[N][i]) {
35+
answer = i;
36+
break;
37+
}
38+
}
39+
System.out.println(answer);
40+
}
41+
}

0 commit comments

Comments
 (0)