PS/Baekjoon Online Judge

[백준 2606] 바이러스 [C]

kimyoungrok 2021. 8. 4. 10:16

백준 - 2606


풀이

입력받은 컴퓨터 쌍을 서로 접근할 수 있도록 반대 쌍 또한 값을 설정해주었다.

그리고, 이전에 접속한 컴퓨터에서의 탐색(중복)을 막기 위해 컴퓨터 번호에 해당하는 num배열의 값을 증가시켰다.


소스코드

#include <stdio.h>
int arr[100][100], num[100], N, cnt;
void dfs(int worm){
    cnt++, num[worm] = 1;
    for (int i = 0; i < N; i++)
        if (arr[worm][i] && !num[i])
            dfs(i);
    return;
}
int main(){
    int line, x, y;
    scanf("%d %d", &N, &line);
    for (int i = 0; i < line; i++){
        scanf("%d %d", &x, &y);
        arr[x-1][y-1] = arr[y-1][x-1] = 1;
    }
    dfs(0);
    printf("%d", cnt - 1);
}

출처

 

2606번: 바이러스

첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어

www.acmicpc.net

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 1550] 16진수 [C]  (0) 2021.08.04
[백준 15649] N과 M (1) [C]  (0) 2021.08.04
[백준 2003] 수들의 합 2 [C]  (0) 2021.08.04
[백준 11441] 합 구하기 [C]  (0) 2021.08.03
[백준 11660] 구간 합 구하기 5 [C]  (0) 2021.08.03