본문 바로가기
프로그래머스

섬 연결하기

by paysmile 2019. 9. 25.
#include <string>
#include <vector>
#include <cstring>
#include <algorithm>

using namespace std;

int kruskal(int sizes, vector<vector<int>> c) {
	vector<int> v;
	sort(c.begin(), c.end());
	int answer = 0;

	v.push_back(c[0][0]);

	while (v.size() < sizes) {
		int temp = 987654321;
		int index = 0;

		for (int i = 0; i < c.size(); i++) {
			if(count(v.begin(),v.end(),c[i][0]) == 1 && count(v.begin(),v.end(),c[i][1])==1)
				continue;
			else {
				if (count(v.begin(), v.end(), c[i][0]) == 1 || count(v.begin(), v.end(), c[i][1])==1) {
					if (temp > c[i][2]) {
						temp = c[i][2];
						index = i;
					}
				}
			}
		}
		answer += temp;
		v.push_back(c[index][0]);
		v.push_back(c[index][1]);
		c.erase(c.begin() + index);
		v.erase(unique(v.begin(), v.end()), v.end());
	}
	return answer;
}

int solution(int n, vector<vector<int>> costs) {

	return kruskal(n,costs);
}

'프로그래머스' 카테고리의 다른 글

입국심사 C++  (0) 2019.09.28
디스크 컨트롤러  (0) 2019.09.28
가장 먼 노드  (0) 2019.09.23
예산  (0) 2019.09.23
정수 삼각형  (0) 2019.09.23