백준 14889 Python 시작 및 연결

https://www.acmicpc.net/problem/14889



설명

1. N의 수가 적기 때문에 조합을 사용하여 경우의 수를 구합니다.

2. 전체 검색 시작, 연결 팀 간의 포인트 차이 최소값 찾기

import sys
from itertools import combinations
input = sys.stdin.readline
N = int(input())
array  = (list(map(int,input().split())) for _ in range(N))
num_list = (i for i in range(N))
com_list=list(combinations(num_list,N//2))

answer = int(1e9)

for cand in com_list: 
    start=cand
    link =list(set(num_list)-set(cand)) # set 함수를 이용한 나머지 팀원 구하기

    start_comb = list(combinations(start,2))
    link_comb = list(combinations(link,2))

    s_score=0
    l_score=0
    for star in start_comb:
        s_score +=array(star(0))(star(1))+array(star(1))(star(0))
    for lin in link_comb:
        l_score +=array(lin(0))(lin(1))+array(lin(1))(lin(0))
    answer = min(answer,abs(s_score-l_score))

print(answer)