From db5bb58520dedcbf70b2e0cbcef2338c85bcd2c1 Mon Sep 17 00:00:00 2001 From: JHLEE325 <82587652+JHLEE325@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:25:57 +0900 Subject: [PATCH] =?UTF-8?q?[20250829]=20BOJ=20/=20G1=20/=20=EA=B3=B5?= =?UTF-8?q?=ED=8F=89=ED=95=98=EA=B2=8C=20=ED=8C=80=20=EB=82=98=EB=88=84?= =?UTF-8?q?=EA=B8=B0=20/=20=EC=9D=B4=EC=A4=80=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0 \353\202\230\353\210\204\352\270\260.md" | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 "JHLEE325/202508/29 BOJ G1 \352\263\265\355\217\211\355\225\230\352\262\214 \355\214\200 \353\202\230\353\210\204\352\270\260.md" diff --git "a/JHLEE325/202508/29 BOJ G1 \352\263\265\355\217\211\355\225\230\352\262\214 \355\214\200 \353\202\230\353\210\204\352\270\260.md" "b/JHLEE325/202508/29 BOJ G1 \352\263\265\355\217\211\355\225\230\352\262\214 \355\214\200 \353\202\230\353\210\204\352\270\260.md" new file mode 100644 index 00000000..8bab3deb --- /dev/null +++ "b/JHLEE325/202508/29 BOJ G1 \352\263\265\355\217\211\355\225\230\352\262\214 \355\214\200 \353\202\230\353\210\204\352\270\260.md" @@ -0,0 +1,54 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st; + + int n = Integer.parseInt(br.readLine()); + int[] arr = new int[n]; + int weight_sum = 0; + + for (int i = 0; i < n; i++) { + arr[i] = Integer.parseInt(br.readLine()); + weight_sum += arr[i]; + } + + int member = n / 2; + + boolean[][] weight = new boolean[member + 1][weight_sum + 1]; + + weight[0][0] = true; + + for (int w : arr) { + for (int i = member; i >= 1; i--) { + for (int ws = weight_sum; ws >= 0; ws--) { + if (weight[i - 1][ws]) + weight[i][ws + w] = true; + } + } + } + + int big = 0, small = 0; + int difference = 987654321; + + for (int i = 0; i <= weight_sum; i++) { + if (weight[member][i]) { + int difftemp = Math.abs(weight_sum - (i * 2)); + if (difftemp < difference) { + difference = difftemp; + big = Math.max(weight_sum - i, i); + small = Math.min(weight_sum - i, i); + } + } + } + + System.out.println(small + " " + big); + + } +} + +```