-
[java] 백준 2606 : 바이러스알고리즘 2023. 4. 30. 20:23
문제
https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
bfs만 하니까 쉽게 풀렸다..
코드
package main; import java.util.*; public class Main { static int N; static int M; static int count=0; static ArrayList<Integer>[] arr; static boolean[] visited; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); //컴퓨터 번호 M = sc.nextInt(); //연결 수 visited = new boolean[N+1]; arr = new ArrayList[N+1]; for(int i=1; i<=N; i++) { arr[i] = new ArrayList<Integer>(); } for(int i=1; i<=M; i++) { int x = sc.nextInt(); int y = sc.nextInt(); arr[x].add(y); arr[y].add(x); } BFS(); System.out.println(count); } static void BFS() { Queue<Integer> q = new LinkedList<>(); q.add(1); visited[1]=true; while(!q.isEmpty()) { int now = q.poll(); for(int x : arr[now]) { if(visited[x]!=true) { q.add(x); visited[x]=true; count++; } } } } }
'알고리즘' 카테고리의 다른 글
[java] 백준 1244 스위치 켜고 끄기 (0) 2023.05.03 [java] 백준 2644 : 촌수계산 (0) 2023.05.02 [java] 백준 1260 : DFS와 BFS (0) 2023.04.27 [java] 백준 14888 : 연산자 끼워넣기 (0) 2023.04.18 [java] 백준 18352 : 특정 거리의 도시찾기 (0) 2023.04.17