반응형
    
    
    
  -문제

-코드
#include<stdio.h>
#include<vector>
using namespace std;
int n, m, cnt, ch[1002];
vector<int> vertex[1002];
void DFS(int v)
{
	for (int i = 0; i < vertex[v].size(); i++)
	{
		if (ch[vertex[v][i]] == 0)
		{
			ch[vertex[v][i]] = 1;
			DFS(vertex[v][i]);
		}
	}
}
int main()
{
	int a,b;
	scanf("%d %d", &n, &m);
	for (int i = 0; i < m; i++)
	{
		scanf("%d %d", &a, &b);
		vertex[a].push_back(b);
		vertex[b].push_back(a);
	}
	for(int i=1; i<=n; i++)
	{ 
		if (ch[i] == 0)
		{
			ch[i] = 1;
			DFS(i);
			cnt++;
		}
	}
	printf("%d", cnt);
	return 0;
}반응형
    
    
    
  '이론 > 코딩테스트' 카테고리의 다른 글
| [백준] 1806번 부분합 (투포인터 알고리즘) (0) | 2022.07.29 | 
|---|---|
| [백준] 2003번 수들의 합 2 (투포인터 알고리즘) (0) | 2022.07.29 | 
| [백준] 2606번 바이러스 (DFS) (0) | 2022.07.28 | 
| [백준] 1010번 다리놓기 (동적 계획법/Dynamic Programming) (0) | 2022.07.28 | 
| [백준] 1003번 피보나치 함수 (동적 계획법/Dynamic Programming) (0) | 2022.07.28 | 
 
                    
                   
                    
                   
                    
                  