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

[백준] 1325번 효율적인 해킹 (DFS)

by 퇴근후개발 2022. 8. 27.
반응형

-문제

 

-코드

#include<stdio.h>
#include<vector>
using namespace std;

vector<int> computer[10001];
vector<int> ch;
int hacking;

void DFS(int c)
{
	for (int i = 0; i < computer[c].size(); i++)
	{
		int next = computer[c][i];
		if (ch[next] == 0)
		{
			ch[next] = 1;
			hacking += 1;
			DFS(next);
		}
	}
}

int main()
{
	int n, m, v1, v2, max =0 ;
	scanf("%d %d", &n,&m);
	vector<int> hackingCntList(n + 1);

	for (int i = 0; i < m; i++)
	{
		scanf("%d %d",&v1, &v2);
		computer[v2].push_back(v1);
	}
	
	
	for (int i = 1; i <= n; i++)
	{
		ch = vector<int>(n + 1, 0);
		ch[i] = 1;
		hacking = 1;
		DFS(i);
		hackingCntList[i] = hacking;
		if (max < hacking) max = hacking;
	}

	for (int i = 1; i <= n; i++)
	{
		if (hackingCntList[i] == max) printf("%d ", i);
	}

	return 0;
}
반응형