[백준]2606.바이러스/Java
📃바이러스 링크
👩🏻💻풀이
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class virus_2606 {
static int[][] matrix;
static boolean[] visited;
static int count;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int node = scan.nextInt();
int edge = scan.nextInt();
matrix = new int[node+1][node+1];
for(int i = 0; i < edge; i++) {
int x = scan.nextInt();
int y = scan.nextInt();
matrix[x][y] = matrix[y][x] = 1;
}
visited = new boolean[node+1];
bfs(1);
}
private static void bfs(int start) {
Queue<Integer> que = new LinkedList<Integer>();
que.add(start);
visited[start] = true;
while(!que.isEmpty()) {
int check = que.peek();
que.poll();
for(int i = 1; i < matrix.length; i++) {
if(matrix[check][i] == 1 && visited[i] == false) {
que.add(i);
visited[i] = true;
count++;
}
}
}
System.out.println(count);
}
}
인접행렬을 만들어주고 BFS(너비우선탐색)를 사용하여 구현해보았당
큐에서 하나씩 꺼내어 검사를 진행했고, 큐에 값이 존재하지 않을 때까지 반복했다🙃
Author And Source
이 문제에 관하여([백준]2606.바이러스/Java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sennys2/백준2606.바이러스Java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)