조합 2

백준 15686번 - 치킨 배달

https://www.acmicpc.net/problem/15686 풀이 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 2 위의 예제를 보자. 집의 개수 : 6개 치킨집(가게)의 개수 : 2개 각각의 집은 치킨거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합니다. 각 집에서 모든 치킨집까지의 최단 거리를 각각 구할 수 있다. 이 중 가장 가까운 곳에 있는 치킨집까지의 거리가 해당 집의 치킨거리가 되는 것이다. 위의 예제에서 (0,1)의 집에서부터 한 번의 BFS(DFS도 가능)을 수행하면 모든 치킨집까지의 최단 거리를 구할 수 있다. 이런 식으로 각 집의 위치를 시작점으로 BFS를 수행(집의 개수만큼 BFS수행)하게되면, 모든 집에서부터 모든 치킨..

백준 14889번 - 스타트와 링크

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 [풀이] 1. N명 중 N/2명을 골라서 팀을 짠다. - 조합 - 비트마스킹으로 구현했는데 그냥 배열로 해도 속도 차이 없을 것 같다. 2. 1번에서 만든 팀과 나머지 인원 팀의 능력치 합을 각각 구하고, 두 능력치의 차이를 구한다. 인풋으로 주어지는 2차원 배열 arr를 모두 탐색하면서 i,j가 팀에 속할 경우 arr[i][j] 값을 능력치 합에 더하면 된다. 3. 1~2번을 반복하여 두 팀의 능력치의 차이의 최소값을 구한다. [..