728x90
반응형
https://www.acmicpc.net/problem/14889
더보기
내 코드
from itertools import combinations
def solv(N, S, team):
# 가장 작은 값 저장 및 비교 변수
min_tmp = 99999
for i in range(len(team) // 2):
# start 팀
team_start = team[i]
start_sum = 0
# link 팀
team_link = team[-i - 1]
link_sum = 0
for j in range(N // 2):
member_s = team_start[j]
member_l = team_link[j]
# start 팀
for k in team_start:
start_sum += S[member_s][k]
# link 팀
for k in team_link:
link_sum += S[member_l][k]
# 최솟값 찾기
min_tmp = min(min_tmp, abs(start_sum - link_sum))
return min_tmp
if __name__=='__main__':
N = int(input())
S = [list(map(int, input().split())) for _ in range(N)]
members = [i for i in range(N)]
team = []
# 조합으로 가능한 팀 생성
for x in list(combinations(members, N // 2)):
team.append(x)
answer = solv(N, S, team)
print(answer)
|
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[python/1003]피보나치 함수 (0) | 2020.04.07 |
---|---|
[python/2748]피보나치 수2 (0) | 2020.04.02 |
[python/14888]연산자 끼워넣기 (0) | 2020.03.28 |
[python/10996]별 찍기 - 21 (0) | 2020.03.23 |
[python/2446]별 찍기 - 9 (0) | 2020.03.21 |