백준 2606

HR·2022년 6월 3일
0

알고리즘 문제풀이

목록 보기
38/50

백준 2606 : 바이러스

  1. dfs를 이용하면 간단하게 풀리는 문제이다.

정답 코드

#include <iostream>
#include <algorithm>

using namespace std;

int n, k;
int com[101][101], visited[101];
int ans;

void dfs(int curNode) {
	visited[curNode]=1;
	for(int i=0; i<n; i++) {
		if(com[curNode][i]==1 && !visited[i]) {
			ans++;
			dfs(i);
		}
	}
}

int main() {	
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin>>n>>k;
	for(int i=0; i<k; i++) {
		int v1, v2;
		cin>>v1>>v2;
		com[v1-1][v2-1]=1;
		com[v2-1][v1-1]=1;
	}
	
	dfs(0);
	

	cout<<ans<<'\n';

	return 0;
}

0개의 댓글