본문 바로가기
이론/코딩테스트

[백준] 2606번 바이러스 (DFS)

by 퇴근후개발 2022. 7. 28.
반응형

-문제

-코드

틀렸던 이유 : 인접리스트 사용함(특정 방향으로만 이동가능하게 구현해서 일부 경우의 수를 빼먹음)

인접행렬 사용해서 양방향 이동 가능하게 하여 오류수정

#include<stdio.h>

int n, m, cnt, ch[101], map[101][101];

void DFS(int v) 
{
	ch[v] = 1;
	cnt++;
	for (int i = 1; i <= n; i++)
	{
		if (map[v][i] == 1 && ch[i] == 0)
		{
			DFS(i);
		}
	}
}
int main()
{
	int a, b;
	scanf("%d", &n);
	scanf("%d", &m);
	for (int i = 1; i <= m; i++)
	{
		scanf("%d %d", &a, &b);
		map[a][b] = map[b][a] = 1;
	}

	DFS(1);
	printf("%d", cnt-1);
	return 0;
}
반응형