본문 바로가기
알고리즘(C++)/백준 문제풀이(C++)

2606 바이러스

by 동욷 2023. 5. 6.

코드

#include <iostream>
#include <stack>
#include <algorithm>
#include <vector>
using namespace std;

int N, M;
vector<int>adjList[101];
bool isvisited[101] = { 0 , };
stack<int>st;

int DFS(int V)
{
	int cnt = 0;
	st.push(V);
	while (!st.empty())
	{
		int cur = st.top();
		st.pop();

		if(isvisited[cur] == true) { continue; }
		isvisited[cur] = true;
		
		if(cur != 1)
		  cnt++;

		for (int i = adjList[cur].size() - 1; i >= 0; i--)
		{
			int next = adjList[cur][i];
			st.push(next);
		}

	}
	return cnt;
}

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

	cin >> N >> M;
	while (M--)
	{
		int u, v;
		cin >> u >> v;
		adjList[u].push_back(v);
		adjList[v].push_back(u);
	}
	int result = DFS(1);
	cout << result;
	return 0;
}
728x90

'알고리즘(C++) > 백준 문제풀이(C++)' 카테고리의 다른 글

2178 미로탐색  (0) 2023.05.06
1149 RGB 거리  (0) 2023.05.06
1260번 DFS와 BFS (실버 2)  (0) 2023.04.30