매일 C++ day 10 / 단속카메라

2021-06-01

단속카메라

https://programmers.co.kr/learn/courses/30/lessons/42884?language=cpp


1) 출발 지점이 빠른 순으로 정렬한다

2)

20210601_160455

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

bool cmp(vector<int> a, vector<int> b)
{
	return a[2] < b[2];
}

int find_parent(int parent[], int n) 
{
	if (parent[n] == n) return n;
	return find_parent(parent, parent[n]);
}

int solution(int n, vector<vector<int>> costs) 
{
    int answer = 0;
    int parent[n];
    for(int i=0; i<n; i++)
	 	parent[i] = i;
	sort(costs.begin(),costs.end(), cmp);	

	for(auto it:costs)
	{
		int a=find_parent(parent, it[0]), b=find_parent(parent, it[1]);
		if(a!=b)
		{
			a<b ? parent[b]=a : parent[a]=b;	
			answer += it[2];
		}
	}
    return answer;
}