connecting the dots
[BOJ/C++] 2606 : 바이러스 본문
문제
풀이
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 |