connecting the dots
[BOJ/C++] 2606 : 바이러스 본문
문제
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
풀이
DFS 가장 기본 문제.
1. 배열 만들기, 연결된 노드는 1로
2. depth 끝까지
3. 중복되지 않도록 visit 여부 확인
4. 1번 컴퓨터는 제외이므로 count-1 출력
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <iostream>
using namespace std;
int n, m;
int count=0;
int arr[201][201]={0};
int visit[101]={0};
void DFS(int depth){
visit[depth]=1;
count++;
for(int i=1;i<=n;i++){
if(arr[depth][i]==1 && visit[i]==0){
DFS(i);
}
}
}
int main() {
int a,b;
scanf("%d %d", &n, &m);
for(int i=0;i<m;i++){
scanf("%d %d", &a, &b);
arr[a][b]=1;
arr[b][a]=1;
}
DFS(1);
printf("%d",count-1);
return 0;
}
|
cs |
'algorithm > BOJ' 카테고리의 다른 글
[BOJ/Java] 14503 : 로봇 청소기 (0) | 2021.02.08 |
---|---|
[BOJ/C++] 2667 : 단지번호붙이기 (0) | 2020.12.21 |
[BOJ/C++] 2225번 : 합분해 (0) | 2020.11.09 |
[BOJ/C++] 2579번 : 계단 오르기 (0) | 2020.11.09 |
[BOJ/C++] 11053번 : 가장 긴 증가하는 부분 수열 (0) | 2020.11.08 |