Notice
Recent Posts
Recent Comments
Link
개발일지
[백준] 네트워크 연결 (1922) 본문
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
arr = new int[N+1];
for(int i=1;i<=N;i++) {
arr[i] = i;
}
int M = sc.nextInt();
int ans = 0;
int[][] edge = new int[M][3];
for(int i=0;i<M;i++) {
edge[i][0] = sc.nextInt();
edge[i][1] = sc.nextInt();
edge[i][2] = sc.nextInt();
}
Arrays.sort(edge, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
// TODO Auto-generated method stub
return o1[2] - o2[2];
}
});
for(int i=0;i<M;i++) {
int num1 = edge[i][0];
int num2 = edge[i][1];
if(find(num1)!=find(num2)) {
union(num1,num2);
ans+= edge[i][2];
}
}
System.out.println(ans);
}
static void union(int a,int b) {
int num1 = find(a);
int num2 = find(b);
if(num1>num2) {
int temp = num2;
num2 = num1;
num1 = temp;
}
arr[num2] = num1;
}
static int find(int a) {
if(arr[a] == a) {
return a;
}
return arr[a] = find(arr[a]);
}
}
'알고리즘' 카테고리의 다른 글
[백준] 키 순서(2458) (0) | 2020.03.19 |
---|---|
[백준] LCA2(11438) (0) | 2020.03.03 |
[백준] 줄 세우기(2252) (0) | 2020.03.03 |
[백준] 집합의 표현 (1717) (0) | 2020.02.21 |
게리맨더링2 (0) | 2019.11.14 |
Comments