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

 

2606번: 바이러스

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

www.acmicpc.net

오늘 풀어볼 문제는 2606번 바이러스 문제이다.

2004년 한국정보올림피라드 지역본선 초등부 3번 문제라는데,

초등학생이 풀 수 있으니까 나도 풀 수 있다!

 

문제 조건

 

문제 풀이 (코드)
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	static ArrayList<Integer>[] network;
	static boolean[] visited;
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt(); 
		network = new ArrayList[n + 1];
		visited = new boolean[n + 1];
		for(int i = 0; i < n + 1; i++) {
			network[i] = new ArrayList<>();
		}
		
		int l = scan.nextInt(); 
		for(int i= 0; i < l; i++){
			int u = scan.nextInt();
			int v = scan.nextInt();
			network[u].add(v);
			network[v].add(u);
		}
		
		DFS(1);

		int rslt = 0;
		for(boolean flag : visited){
			if(flag == true) {
				rslt++;
			}	
		}
		System.out.println(rslt - 1);
		
		scan.close();
	}
	
	private static void DFS(int u) {
		visited[u] = true;
		
		for(int v : network[u]){
			if(visited[v] == false) {
				DFS(v);
			}	
		}
	}

}

'알고리즘' 카테고리의 다른 글

[백준 BOJ][JAVA] 1956번: 운동  (0) 2022.02.05
[백준 BOJ][JAVA] 7569번: 토마토  (0) 2022.02.04
[백준 BOJ][JAVA] 10886번: 덱  (0) 2022.01.29
[백준 BOJ][JAVA] 2164번: 카드2  (0) 2022.01.28
[백준 BOJ][JAVA] 9012번: 괄호  (0) 2022.01.22

+ Recent posts