본문 바로가기

연습코드

정올 종교 Solution

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class 종교 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int cnt = 0;
		int[] arr = new int[m];
		int[] arr2 = new int[m];
		boolean[] p = new boolean[n+1];
		Queue<Integer> q = new LinkedList<Integer>();
		for (int i = 0; i < m; i++) {
			arr[i] = sc.nextInt();
			arr2[i] = sc.nextInt();
		}
		if(m == 0)
		{
			System.out.println(n);
			return;
		}
		for (int i = 1; i < p.length; i++) {
			if(!p[i])
			{
				cnt++;
				p[i] = true;
				q.add(i);
				while(!q.isEmpty())
				{
					int temp = q.poll();
					for (int j = 0; j < m; j++) {
						if(temp == arr[j] || temp == arr2[j])
						{
							if(!p[arr2[j]])
							{
								q.add(arr2[j]);
								p[arr2[j]] = true;
							}
							if(!p[arr[j]])
							{
								q.add(arr[j]);
								p[arr[j]] = true;
							}
						}
					}
				}
			}
		}
		System.out.println(cnt);
	}
}

'연습코드' 카테고리의 다른 글

[JAVA] Baby gin 솔루션  (1) 2020.01.23