Deep Learning study

백준 1197문제 본문

백준 문제 코드

백준 1197문제

HwaniL.choi 2019. 10. 19. 18:05
반응형
#include <iostream>
#include <algorithm>
using namespace std;

struct cost
{
	int a, b;
	int c;
	bool operator<(struct cost k)
	{
		return k.c > c;
	}
}cost[100001];

int parent[10001];
long long int sum;

int set_find(int);
void set_union(int, int,int);

int main()
{
    ios_base::sync_with_stdio(false);
    
	long long int v, e;

	cin >> v >> e;

	for (int i = 1; i <= v; i++)
		parent[i] = i;

	for (int i = 1; i <= e; i++)
        cin >> cost[i].a >> cost[i].b >> cost[i].c;

	sort(cost + 1, cost + 1 + e);

	for (int i = 1; i <= e; i++)
		set_union(cost[i].a, cost[i].b,i);

	cout << sum << endl;

	return 0;
}

int set_find(int x)
{
	if (parent[x] != x)
		parent[x] = set_find(parent[x]);
	return parent[x];
}

void set_union(int x, int y, int i)
{
	int xroot, yroot;
	xroot = set_find(x);
	yroot = set_find(y);

	if (xroot == yroot)
		return;
	else
	{
		parent[yroot] = xroot;
		sum += cost[i].c;
	}

}

백준 1197문제 풀이 입니다.!

반응형

'백준 문제 코드' 카테고리의 다른 글

백준 14502문제  (0) 2019.11.12
백준 13147문제  (0) 2019.10.19
백준 1261문제  (0) 2019.10.19
백준 1541문제  (0) 2019.10.05
백준 1535문제 (DP이용)  (0) 2019.10.05
Comments