작성
·
30
답변 1
0
안녕하세요 유태님 ㅎㅎ
N = 4일 경우, 팀에 2명씩 속하기 때문에 arr[i][j] + arr[j][i] 차이의 최소값을 구하면 간단하게 풀어지는데요
-> 이 경우 a, b, c, d가 있을 때
a, b
a, c
a, d
b, c
b, d
c, d
이렇게 한그룹 경우의 수 설정하고 -> 그 외 팀은 자동으로 정해지는 것을 생각하시면 되는데요.
if(b.size() == k){
vector<int> start, link;
for(int i = 0; i < n; i++){
if(visited[i])start.push_back(i);
else link.push_back(i);
}
ret = min(ret, go(start, link));
return;
}
combi 함수를 보시면 한 팀을 visited 처리 -> 그 외 처리 이렇게 되는 것을 볼 수 있습니다.
N이 6일때도 이와 동일하게 생각하시면 됩니다.
감사합니다.