2021년 10월 16일 토요일 10시
[DFSBFS] 백준_2606_바이러스_DFSBFS_실버4
-> 다시풀어보기
https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
import java.util.Scanner;
public class Main{
static int N; // 컴퓨터의 수 (정점)
static int M; // 네트워크 상에 직접연결되어있는 컴퓨터 쌍의 수 (간선)
static int V; // 탐색시작할 정점의 번
static int[][] map; //각 정점간 탐색 경로를 저장할 배열
static boolean[] checked; //정점의탐색여부 체크
static int count =0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
V = 1;
map = new int[N+1][N+1]; //배열은 N+1
checked = new boolean[N+1]; //정점의 탐색 여부 체크
for(int i=0; i<M;i++) {
int a = sc.nextInt();
int b = sc.nextInt();
map[a][b] = map[b][a] =1;
}
//for(int i=1; i<N+1;i++) {
// for (int j=1; j<N+1;j++) {
// System.out.print(map[i][j]);
// }
// System.out.println();
//}
System.out.println(dfs(1));
sc.close();
}
public static int dfs(int i) {
checked[i] = true;
for(int j=1;j<=N;j++) {
if(map[i][j] ==1 && checked[j] ==false) {
count ++;
dfs(j);
}
}
return count;
}
}
/*
7
6
1 2
2 3
1 5
5 2
5 6
4 7
*/
<참고>
https://fbtmdwhd33.tistory.com/28
[백준,BOJ 2606] 바이러스(JAVA 구현,추가풀이)
-내 생각 단계별로 풀어보기 DFS, BFS로 분류되어 있는 백준 2606 바이러스 문제이다. 이전 단계에 백트래킹 알고리즘 단계가 있었는데 일반적으로 백트래킹의 경우 DFS를 기반으로 푼다는 글을 보
fbtmdwhd33.tistory.com
https://zzang9ha.tistory.com/40
[백준] 2606번: 바이러스(DFS, BFS)
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서
zzang9ha.tistory.com
'알고리즘 > 백준' 카테고리의 다른 글
[DFSBFS] 백준_1012_유기농배추_DFSBFS_실버2 (0) | 2021.10.19 |
---|---|
[DFSBFS] 백준_2667_단지번호붙이기_DFSBFS_실버1 (0) | 2021.10.16 |
[DFSBFS] 백준_2606_바이러스_DFSBFS_실버4 (0) | 2021.10.14 |
[DFSBFS] 백준_1260_DFSBFS_DFSBFS_실버2 (0) | 2021.10.14 |
[백트래킹] 백준_9663_NQueen_백트래킹_골드5 (0) | 2021.10.03 |