개발/알고리즘
백준 2606번 : 바이러스
라사 RASA
2020. 8. 21. 21:16
문제 접근
입력 받은 것들을 인접 행렬로 구현하고, 1번에 대해 DFS 한 뒤 탐색하는 것들의 수를 cnt 변수에 기록해 반환하여 풀었다. 간단한 문제!
문제 코드
#include <iostream>
using namespace std;
int v,e;
bool adj[101][101] = {false};
bool visited[101] = {false};
int dfs(int n)
{
int cnt=0;
visited[n] = true;
for(int i=1; i<=v; ++i)
if(!visited[i] && adj[n][i])
cnt=cnt+1+dfs(i);
return cnt;
}
int main(void)
{
int in, out;
cin>>v>>e;
for(int i=0; i<e; ++i)
{
cin>>in>>out;
adj[in][out]=adj[out][in]=true;
}
cout<<dfs(1)<<'\n';
}