바이러스(백준)

108번뇌·2021년 5월 2일
0

#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으로 체크했다.
백준 문제들은 테스트케이스가 하나고 입출력을 내가 넣는거여서 힘든거같다..휴

profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글