Programmers 섬 연결하기
Updated:
Answer
import java.util.*;
class Solution {
int[] parent;
public int find(int child){
if(parent[child] == child){
return child;
}else{
return parent[child] = find(parent[child]);
}
}
public int solution(int n, int[][] costs) {
Arrays.sort(costs, (o1, o2) -> {
return o1[2] - o2[2];
});
parent = new int[n];
for(int i = 0; i < n; i++){
parent[i] = i;
}
int answer = 0;
for(int i = 0; i < costs.length; i++) {
int firstIsland = find(costs[i][0]);
int secondIsland = find(costs[i][1]);
if(firstIsland != secondIsland) {
if(firstIsland < secondIsland){
parent[secondIsland] = firstIsland;
}else{
parent[firstIsland] = secondIsland;
}
answer += costs[i][2];
}
}
return answer;
}
}