5.2. 박인서 ¶
- Minimum Spanning Tree
 - 입력 예
 
 
- 입력 예
1 2 2 1 3 2 2 4 4 3 4 1 2 7 1 3 7 5 3 6 2 6 7 4 3 5 3 5 6 3
- 출력 예 : 11
 
- 소스
 
#include <stdio.h>
#define LEN 11
int a[LEN][3],ver[LEN];
int oper(int a,int b)
{
	if(a==0 && b==1) return 1;
	if(a==1 && b==0) return 1;
	return 0;
}
int main()
{
	int i,min[3]={0,0,100},res=0;
	for(i=0;i<10;i++) scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
	ver[1]=1;
	while(1)
	{
		min[2]=100;
		for(i=0;i<10;i++)
		{
			if(oper(ver[a[i][0]], ver[a[i][1]]) && a[i][2]<min[2]) min[0]=a[i][0],min[1]=a[i][1],min[2]=a[i][2];
		}
		if(min[2]==100) break;
		ver[min[0]]=1,ver[min[1]]=1;
		res+=min[2];
	}
	printf("%d",res);
	return 0;
}
5.3. 이원준 ¶
#include<stdio.h>
void MST(int S[], int E[], int N[]){
	int temp[7];
	int ntemp[6] = { 0 };
	int i, j, k, m;
	int mini = 0;
	int mnum;
	int flag = 0;
	int f = 0;
	temp[0] = 5;
	for (i = 0; i < 7; i++){
		mini = 0;
		for (j = 0; j < 10; j++){
			
			for (k = 0; k < i; k++){
				if (S[j] == temp[k]){
					for (m = 0; m < i; m++){
						if (E[j] == temp[m]){
							flag = 1;
							break;
						}
					}
					if (flag == 0){
						if (mini == 0){
							temp[i] = E[j];
							ntemp[i-1] = j;
							mini = N[j];
						}
						else if (mini > N[j]){
							temp[i] = E[j];
							ntemp[i-1] = j;
							mini = N[j];
						}
					}
					flag = 0;
				}
				if (E[j] == temp[k]){
					for (m = 0; m < i; m++){
						if (S[j] == temp[m]){
							flag = 1;
							break;
						}
					}
					if (flag == 0){
						if (mini == 0){
							temp[i] = S[j];
							ntemp[i-1] = j;
							mini = N[j];
						}
						else if (mini > N[j]){
							temp[i] = S[j];
							ntemp[i-1] = j;
							mini = N[j];
						}
					}
					flag = 0;
				}
			}
		}
	}
	k = 1;
	for (i = 0; i < 6; i++){
		f += N[ntemp[i]];
	}
	printf("%d", f);
}
	
void main(){
	int S[10];
	int E[10];
	int N[10];
	S[0] = 1;
	E[0] = 3;
	N[0] = 2;
	S[1] = 1;
	E[1] = 2;
	N[1] = 2;
	S[2] = 2;
	E[2] = 4;
	N[2] = 4;
	S[3] = 2;
	E[3] = 7;
	N[3] = 6;
	S[4] = 3;
	E[4] = 4;
	N[4] = 1;
	S[5] = 3;
	E[5] = 7;
	N[5] = 7;
	S[6] = 3;
	E[6] = 5;
	N[6] = 3;
	S[7] = 3;
	E[7] = 6;
	N[7] = 2;
	S[8] = 5;
	E[8] = 6;
	N[8] = 3;
	S[9] = 6;
	E[9] = 7;
	N[9] = 8;
	MST(S, E, N);
}













