https://programmers.co.kr/learn/courses/30/lessons/42861
풀이 : 탐욕 알고리즘 / 프림 알고리즘 / 최소신장트리 찾기
참고 : 2021.09.20 - [알고리즘/알고리즘] - 탐욕 알고리즘 Greedy Algorithm
class Solution {
public int solution(int n, int[][] costs) {
boolean[] isVisited = new boolean[n];
int answer = 0;
int visitedSpotCount = 0;
int[][] graph = new int[n][n];
isVisited[0] = true;
for(int[] c : costs) {
graph[c[0]][c[1]]=c[2];
graph[c[1]][c[0]]=c[2];
}
while(visitedSpotCount<n-1) {
int minWeight = Integer.MAX_VALUE;
int visitedSpot = 0;
for(int i=0; i<n; i++) {
if(isVisited[i]) {
for(int j=0; j<n; j++) {
if(graph[i][j]>0 && !isVisited[j]) {
if(minWeight > graph[i][j]) {
minWeight = graph[i][j];
visitedSpot = j;
}
}
}
}
}
visitedSpotCount++;
answer += minWeight;
isVisited[visitedSpot] = true;
}
return answer;
}
}
'알고리즘 > 코딩테스트' 카테고리의 다른 글
프로그래머스 N으로 표현 (0) | 2021.10.04 |
---|---|
프로그래머스 단속카메라 (0) | 2021.10.01 |
프로그래머스 이중우선순위큐 (0) | 2021.09.28 |
프로그래머스 디스크 컨트롤러 (0) | 2021.09.26 |
프로그래머스 베스트앨범 (0) | 2021.09.25 |