Beakjoon 2606 바이러스

Baekjoon Online Judge

문제 링크 : https://www.acmicpc.net/problem/2606

나의 풀이

1번 컴퓨터를 시작 정점으로 dfs를 시작하여 바이러스에 걸리게 되는 컴퓨터의 수를 구할 수 있다.

풀이 코드 : 2606 바이러스

#include <stdio.h>
#include <vector>

using namespace std;

vector<int> node[100];
int visit[100];

int dfs(int start){
    int count = 0;
    vector<int> stack;
    stack.push_back(start);
    while(!stack.empty()){
        int n = stack.back();
        stack.pop_back();
        visit[n] = 1;
        count++;
        for(int i=0;i<node[n].size();i++){
            int next = node[n][i];
            if(visit[next] == 0){
                visit[next] = 1;
                stack.push_back(next);
            }
        }
    }

    return count; 
}


int main(){
    int N, M, a, b;
    scanf("%d", &N);
    scanf("%d", &M);

    for(int i=0;i<M;i++){
        scanf("%d %d", &a, &b);
        node[a].push_back(b);
        node[b].push_back(a);
    }
    int answer = dfs(1);
    printf("%d",answer-1);
    
}

채점결과

49993


© 2020. All rights reserved.

Powered by Hydejack v8.4.0