[Algorithm - Programmers] 섬 연결하기

nunu·2023년 12월 17일
0

Algorithm

목록 보기
128/142

https://school.programmers.co.kr/learn/courses/30/lessons/42861

제출 코드

import java.util.Arrays;
class Solution {
    int[] parents;
    public int solution(int n, int[][] costs) {
        int answer = 0;
        Arrays.sort(costs, ((o1, o2) -> o1[2] - o2[2]));

        parents = new int[n];
        for (int i = 0; i < n; i++) {
            parents[i] = i;
        }

        for (int[] edge : costs) {
            int str = edge[0];
            int dest = edge[1];
            int cost = edge[2];

            int strParent = findParent(str);
            int destParent = findParent(dest);

            if (strParent == destParent)
                continue;

            answer += cost;
            parents[destParent] = strParent;
        }


        return answer;
    }
    int findParent(int node) {
        if (parents[node] == node)
            return node;
        return parents[node] = findParent(parents[node]);
    }
}
profile
Hello, I'm nunu

0개의 댓글