From 74e5a3bae16948ba1311f7a5794ac03799c29a5f Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Sat, 7 Mar 2026 23:50:50 +0900 Subject: [PATCH] =?UTF-8?q?[20260307]=20BOJ=20/=20G5=20/=20=EB=B9=9A=20/?= =?UTF-8?q?=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "LiiNi-coder/202603/07 BOJ \353\271\232.md" | 47 +++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 "LiiNi-coder/202603/07 BOJ \353\271\232.md" diff --git "a/LiiNi-coder/202603/07 BOJ \353\271\232.md" "b/LiiNi-coder/202603/07 BOJ \353\271\232.md" new file mode 100644 index 00000000..ea28aa91 --- /dev/null +++ "b/LiiNi-coder/202603/07 BOJ \353\271\232.md" @@ -0,0 +1,47 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.StringTokenizer; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int t = Integer.parseInt(br.readLine()); + StringBuilder sb = new StringBuilder(); + + while (t-- > 0){ + StringTokenizer st = new StringTokenizer(br.readLine()); + int n = Integer.parseInt(st.nextToken()); + long[] arr = new long[n]; + + for(int i = 0; i < n; i++){ + arr[i] = Long.parseLong(st.nextToken()); + } + Arrays.sort(arr); + + long[] prefix = new long[n + 1]; + for(int i = 1; i <= n; i++) { + prefix[i] = prefix[i - 1] + arr[i - 1]; + } + + long totalSum = 0; + for(int k = 2; k <= n; k++){ + long minCost = Long.MAX_VALUE; + for(int j = k; j <= n; j++){ + long sum = prefix[j] - prefix[j-k]; + long cost = (arr[j-1] * k) - sum; + if(cost < minCost) { + minCost = cost; + } + } + totalSum += minCost; + } + sb.append(totalSum).append('\n'); + } + + System.out.print(sb); + } +} +```