csct3434
[level 3] 섬 연결하기 - 42861 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
private int[] parent;
public int solution(int n, int[][] costs) {
int answer = 0, count = 0, total = (n * n - n) / 2;
parent = new int[n + 1];
for (int i = 1; i <= n; i++) {
parent[i] = i;
}
Arrays.sort(costs, Comparator.comparingInt(a -> a[2]));
for (int[] cost : costs) {
int px = find(cost[0]);
int py = find(cost[1]);
if (px != py) {
union(px, py);
answer += cost[2];
if (++count == total) {
break;
}
}
}
return answer;
}
private void union(int x, int y) {
if (x <= y) {
parent[y] = x;
} else {
parent[x] = y;
}
}
private int find(int x) {
if (x == parent[x]) {
return x;
}
return find(parent[x]);
}
}
'프로그래머스' 카테고리의 다른 글
[level 3] 네트워크 - 43162 (0) | 2024.03.17 |
---|---|
[level 3] 단속카메라 - 42884 (0) | 2024.03.17 |
[level 3] 이중우선순위큐 - 42628 (0) | 2024.03.17 |
[level 3] 디스크 컨트롤러 - 42627 (0) | 2024.03.17 |
[level 3] 베스트앨범 - 42579 (0) | 2024.03.17 |