Skip to content

Commit db5bb58

Browse files
authored
[20250829] BOJ / G1 / 공평하게 팀 나누기 / 이준희
1 parent 3d3f984 commit db5bb58

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
7+
public static void main(String[] args) throws Exception {
8+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
9+
StringTokenizer st;
10+
11+
int n = Integer.parseInt(br.readLine());
12+
int[] arr = new int[n];
13+
int weight_sum = 0;
14+
15+
for (int i = 0; i < n; i++) {
16+
arr[i] = Integer.parseInt(br.readLine());
17+
weight_sum += arr[i];
18+
}
19+
20+
int member = n / 2;
21+
22+
boolean[][] weight = new boolean[member + 1][weight_sum + 1];
23+
24+
weight[0][0] = true;
25+
26+
for (int w : arr) {
27+
for (int i = member; i >= 1; i--) {
28+
for (int ws = weight_sum; ws >= 0; ws--) {
29+
if (weight[i - 1][ws])
30+
weight[i][ws + w] = true;
31+
}
32+
}
33+
}
34+
35+
int big = 0, small = 0;
36+
int difference = 987654321;
37+
38+
for (int i = 0; i <= weight_sum; i++) {
39+
if (weight[member][i]) {
40+
int difftemp = Math.abs(weight_sum - (i * 2));
41+
if (difftemp < difference) {
42+
difference = difftemp;
43+
big = Math.max(weight_sum - i, i);
44+
small = Math.min(weight_sum - i, i);
45+
}
46+
}
47+
}
48+
49+
System.out.println(small + " " + big);
50+
51+
}
52+
}
53+
54+
```

0 commit comments

Comments
 (0)