[알고리즘] 백준-2606 바이러스
✍ 문제
👏 풀이과정
처음 문제를 보자마자 쉬운 문제라 생각됬다. BFS,DFS를 사용하여 푸는 문제라 생각되 빠르게 진행 할 수 있었다.
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class bak_2606 {
static int computer_num = 100;
static int m = 50 * 99;
static int[][] graph = new int[100][100];
static boolean[] visit = new boolean[100];
static int count = 0;
static Queue<Integer> queue = new LinkedList<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
computer_num = sc.nextInt();
graph = new int[computer_num][computer_num];
visit = new boolean[computer_num];
m = sc.nextInt();
int x = 0;
int y = 0;
for(int i = 0; i < m; i++){
x = sc.nextInt();
y = sc.nextInt();
graph[x - 1][y - 1] = 1;
graph[y - 1][x - 1] = 1;
}
// 1. dfs
//dfs(0);
// 2. bfs
//bfs(0);
System.out.println(count);
}
static void bfs(int root){
visit[root] = true;
for(int i = 0; i < computer_num; i++){
if(graph[root][i] == 1 && visit[i] == false){
queue.add(root * 1000 + i);
count++;
}
}
bfs(queue.poll() % 1000);
}
static void dfs(int root){
visit[root] = true;
for(int j = 0; j < computer_num; j++){
if(graph[root][j] == 1 && visit[j] == false){
count++;
dfs(j);
}
}
return;
}
}
Author And Source
이 문제에 관하여([알고리즘] 백준-2606 바이러스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ysm103408/알고리즘-백준-2606-바이러스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)