알고리즘 공부/백준 문제풀이

[백준 python] 14889번 스타트와 링크

이현찬 2022. 8. 5. 02:26
728x90

문제 링크

 

14889번: 스타트와 링크

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

www.acmicpc.net

문제 설명

  • 짝수 N명의 사람들을 두개의 팀으로 나누어 각 팀의 능력치를 계산해 비교해 차이가 최소인 팀 구성을 구하는 문제
  • 팀이 구성되면 구성원 끼리 순서가 없기 때문에 조합을 찾는 문제로 생각해 풀 수 있음

고민한 부분

  • python의 내장 라이브러리인 itertoolscombinations함수를 사용할 수 있을지 확인해보고 싶었다
  • 백트래킹 문제가 조금 까다롭게 나오는 경우 중간에 탐색할 필요 없는 조건을 찾아 가지치기를 해주어야 하는데 이 문제에서는 가지치기 할 필요 없이 조합을 구하면 되는 문제였기 때문에 내장 함수를 사용해 풀이해도 통과가 됐다
  • 아래 재귀 형태로 조합을 구하는 코드와 내장 함수를 사용하는 코드를 모두 첨부했다

재귀로 조합 구하기

python 내장 함수 combinations 사용해 조합 구하기