코딩테스트/백준

백준 2606 : 바이러스 _자바 Java

플래시🦥 2023. 1. 10.
반응형

https://www.acmicpc.net/problem/2606

 

2606번: 바이러스

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

www.acmicpc.net


import java.io.*;
import java.util.*;

public class Main {
	
	static int cnt=0;
	
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int vertex = Integer.parseInt(br.readLine());
		int edge= Integer.parseInt(br.readLine());
		int[][] f = new int[vertex+1][vertex+1];
		boolean check[] = new boolean[vertex+1];
		
		
		for(int i=0;i<edge;i++){
			String str=br.readLine();
			StringTokenizer st = new StringTokenizer(str," ");
			int v1=Integer.parseInt(st.nextToken());
			int v2=Integer.parseInt(st.nextToken());
			
			f[v1][v2]=1;
			f[v2][v1]=1;
		}
		dfs(f,check,1);
		System.out.println(cnt-1); 
	}
	static void dfs(int[][]arr, boolean[] chck,int k) {
		if(chck[k])
			return;
		
		chck[k]=true;
		cnt++;
		
		for(int i=0;i<arr[k].length;i++) { 
			if(arr[k][i]==1 && !chck[i])
				dfs(arr,chck,i); 
		}	
		
		
	}
}​

 

728x90
반응형

댓글