백준 2606번: 바이러스 [DFS][BFS][Java] :: 매운코딩
728x90
300x250

www.acmicpc.net/problem/2606

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

1. 그래프를 배열화

2. 1부터 연결여부 확인하여 탐색

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Main {
	public static int com, K,  ans=0;
	public static boolean visit[];
	public static int map[][];
	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub
		//System.setIn(new FileInputStream("sample_input.txt"));

		Scanner sc = new Scanner(System.in);
		com = sc.nextInt();
		K = sc.nextInt();
		map = new int[com+1][com+1];
		visit = new boolean[com+1];
		
		for (int i = 0; i < K; i++) {
			int r = sc.nextInt();
			int c = sc.nextInt();
			map[r][c]=1;
			map[c][r]=1;
		}
		
		visit[1]=true;
		dfs(1);
		
		System.out.println(ans);
	}

	public static void dfs(int idx) {
		
		for (int i = 1; i <= com; i++) {
			if(i==idx)
				continue;
			if(visit[i])
				continue;
			if(map[idx][i]==1) {
				visit[i]=true;
				ans++;
				dfs(i);
			}
				
		}
		
		
	}
}
728x90

+ Recent posts