#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int M;
int N;
int iResult(0);
int Map[101][101] = { 0, };
bool Chk[101] = { false, };
void DFS(int iStart)
{
Chk[iStart] = true;
for (int i = 1 ; i <= M; i++)
{
if ((Chk[i] == 0) && (Map[iStart][i] == 1))//방문 안했으며, 길이 이어져 있을 때
{
iResult++;
DFS(i);
}
}
}
void BFS(int iStart)
{
queue<int> qTemp;
Chk[iStart] = 1;//방문기록 남기고
qTemp.push(iStart);//하나 집어넣고
while (!qTemp.empty())
{
int iTemp = qTemp.front();
qTemp.pop();
for (int i = 0; i <= M; i++)
{
if ((Chk[i] == 0) && (Map[iTemp][i] == 1))//방문하지 않았으며 길은 이어져있는 경우입니다.
{
iResult++;
Chk[i] = 1;//방문기록 하고서
qTemp.push(i);//큐에 다시 집어넣는다.
}
}
}
}
int main()
{
int a, b;
cin >> M >> N;
for (int i = 0; i < N; i++)
{
cin >> a >> b;
Map[a][b] = Map[b][a] = 1;
}
DFS(1);
cout << iResult << endl;
return 0;
}
하다 안되서 대체 어디가안되나 한시간 붙잡았다...
<=M .....을 <M으로 체크했다.
백준 문제들은 테스트케이스가 하나고 입출력을 내가 넣는거여서 힘든거같다..휴