Skip to content

Commit ff62ca2

Browse files
authored
[20260115] BOJ / G5 / 1학년 / 한종욱
1 parent ea90bae commit ff62ca2

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

Ukj0ng/202601/15 BOJ G5 1학년.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
```
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
private static long[][] dp;
9+
private static int[] arr;
10+
private static int N;
11+
12+
public static void main(String[] args) throws IOException {
13+
init();
14+
15+
bw.write(dp[N-1][arr[N]] + "\n");
16+
bw.flush();
17+
bw.close();
18+
br.close();
19+
}
20+
21+
private static void init() throws IOException {
22+
N = Integer.parseInt(br.readLine());
23+
arr = new int[N+1];
24+
dp = new long[N][21];
25+
StringTokenizer st = new StringTokenizer(br.readLine());
26+
27+
for (int i = 1; i <= N; i++) {
28+
arr[i] = Integer.parseInt(st.nextToken());
29+
}
30+
31+
dp[1][arr[1]] = 1;
32+
33+
for (int i = 2; i < N; i++) {
34+
for (int j = 0; j <= 20; j++) {
35+
int lower = j - arr[i];
36+
if (lower >= 0 && dp[i-1][lower] > 0) {
37+
dp[i][j] += dp[i-1][lower];
38+
}
39+
int upper = j + arr[i];
40+
if (upper <= 20 && dp[i-1][upper] > 0) {
41+
dp[i][j] += dp[i-1][upper];
42+
}
43+
}
44+
}
45+
}
46+
}
47+
```

0 commit comments

Comments
 (0)