본문 바로가기

BOJ

[BOJ][Python] 백준 14889번 - 스타트와 링크

728x90

문제 링크: https://www.acmicpc.net/problem/14889

 

14889번: 스타트와 링크

예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.

www.acmicpc.net

 

 


문제 풀이

파이썬에서는 itertools 모듈이 있어서 조합을 구하기가 쉽다.

n명의 인원 중에서 $n/2$의 인원을 뽑고 나머지 인원은 set으로 차집합시켜서 빼줬다.

스타트 팀과 링크 팀의 능력치를 각각 구해주고 min()과 abs()를 이용하여 최소가 되는 차를 구해줬다.

 

예제 2에서 N=6이므로 각각 3명을 뽑는 경우 중 스타트 팀이 (1, 3, 6), 링크 팀이 (2, 4, 5)라고 하자.

스타트 팀의 능력치는 $S_{13}$, $S_{31}$, $S_{16}$, $S_{61}$, $S_{36}$, $S_{63}$의 값을 모두 더해야 한다.

마찬가지로 링크 팀의 능력치는 $S_{24}$, $S_{42}$, $S_{25}$, $S_{52}$, $S_{45}$, $S_{54}$의 값을 더하면 된다.

 

코드

728x90