전체 코드
from itertools import combinations
def min_diff(G, n, t):
min_val = int(1e10)
ing = [i for i in range(n)]
ing_comb = list(combinations(ing, n // 2))
ing_set_1 = ing_comb[:len(ing_comb) // 2]
ing_set_2 = ing_comb[len(ing_comb)//2:]
ing_set_2 = ing_set_2[::-1]
for i in range(len(ing_set_1)):
comb_1 = ing_set_1[i]
comb_2 = ing_set_2[i]
sum_val_1 = 0
sum_val_2 = 0
pair_1 = list(combinations(comb_1, 2))
pair_2 = list(combinations(comb_2, 2))
for pair in pair_1:
i, j = pair
sum_val_1 += (G[i][j]+G[j][i])
for pair in pair_2:
i, j =pair
sum_val_2 += (G[i][j]+G[j][i])
min_val = min(min_val, abs(sum_val_1-sum_val_2))
print("#{} {}".format(t, min_val))
T = int(input())
for t in range(1, T+1):
N = int(input())
S = []
for _ in range(N):
S.append(list(map(int, input().split())))
min_diff(S, N, t)