2606번-양
백준문제풀이/DFS

2606번-양

반응형

문제

https://www.acmicpc.net/problem/2606

 

2606번: 바이러스

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

www.acmicpc.net


접근방법

1) 접근 사고

1. DFS 탐색을 통해 1번 바이러스와 연결된 간선들을 탐색해주면 됩니다.

2. 바이러스의 숙주인 1번은 제외하고 출력해야 합니다.

 

2) 시간 복잡도

 

3) 실수

 

4) 배운점

 

5) PS

 


정답 코드

#include <bits/stdc++.h>

using namespace std;

int n, m, ans;
const int MAX = 105;
vector<int> board[MAX];
bool visited[MAX];

int moveY[] = {-1,0,1,0};
int moveX[] = {0,-1,0,1};

void DFS(int cur){
    visited[cur] = true;
    ans++;
    for(auto next : board[cur]){
        if(!visited[next]){
            DFS(next);
        }
    }

}

void pro(){
   DFS(1);
}

void input(){
    cin >> n >> m;
    for(int i = 0; i < m; i++){
        int a, b;
        cin >> a >> b;
        board[a].push_back(b);
        board[b].push_back(a);
    }
}

int main(){
    input();
    pro();
    cout << ans -1 <<"\n";
}
반응형

'백준문제풀이 > DFS' 카테고리의 다른 글

11725번-트리의 부모 찾기  (0) 2022.04.15
11724번-연결 요소의 개수  (0) 2022.04.14
14888번-연산자 끼워넣기  (0) 2021.09.04