쵼쥬 2022. 4. 16. 20:32


package com.company;

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 = null;
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine());
        for (int t = 0; t < T; t++) {
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int answer = 0;
            List<Integer> list = new ArrayList<>();

            for (int i = 0; i < N; i++) {
                list.add(Integer.parseInt(st.nextToken()));
            }

            list.sort(Collections.reverseOrder());  // 빚을 정렬

            // M을 1부터 탐색하면서 추가적으로 갚아야 할 돈의 최소값 찾음
            for (int i = 1; i < N; i++) {
                long a = Long.MAX_VALUE;
                long sum = 0;

                int l = 0;
                int r = 1;
                while (r < N) {
                    sum += list.get(l) - list.get(r);
                    if (r - l == i) {
                        a = Math.min(sum, a);
                        l++;
                        sum -= (long) (list.get(l - 1) - list.get(l)) * i;  
                    }
                    r++;
                }
                answer += a;
            }
            sb.append(answer).append("\n");
        }
        System.out.println(sb);
    }
}