[210604][백준/BOJ] 2606번 바이러스

KeonWoo Kim·2021년 6월 4일
0

알고리즘

목록 보기
70/84

문제

입출력

풀이

DFS를 통해 탐색을 하면서 1번 컴퓨터를 통해 바이러스가 걸릴 수 있는 컴퓨터를 찾는다.

따라서 DFS 함수를 만들고 DFS(1)을 실행시키면 1번 컴퓨터를 통해 바이러스가 걸리는 컴퓨터의 갯수를 구할 수 있다.

코드

#include <bits/stdc++.h>
using namespace std;
#define SIZE 102

int board[SIZE][SIZE];
bool vis[SIZE];
int n, m, x, y, cnt = 0;

void DFS(int V)
{
	vis[V] = 1;
	for (int i = 1; i <= n; ++i)
	{
		if (!vis[i] && board[V][i])
		{
			DFS(i);
			cnt++;
		}
	}
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n >> m;

	for (int i = 0; i < m; ++i)
	{
		cin >> x >> y;
		board[x][y] = 1;
		board[y][x] = 1;
	}
	DFS(1);
	cout << cnt;
}
profile
안녕하세요

0개의 댓글

관련 채용 정보