-
[알고리즘/BFS] 백준 2606번: 바이러스 - C/C++알고리즘/백준 2021. 3. 5. 21:58728x90
https://www.acmicpc.net/problem/2606
- BFS 를 이용하였으며, Queue를 직접 구현하였습니다.
#include <stdio.h> bool computer[101][101]; int queue[101]; bool visited[101]; int main() { int computerN; scanf("%d", &computerN); int linkN, a, b; scanf("%d", &linkN); for (int i = 0; i < linkN; ++i) { scanf("%d %d", &a, &b); computer[a][b] = true; } int ret = 0, R = 0, L = 0; visited[1] = true; for (int i = 1; i <= computerN; ++i) { if (computer[1][i] || computer[i][1]) { queue[R++] = i; visited[i] = true; } } while (R > L) { int current = queue[L++]; ++ret; for (int i = 1; i <= computerN; ++i) { if (visited[i]) continue; if (computer[current][i] || computer[i][current]) { queue[R++] = i; visited[i] = true; } } } printf("%d", ret); }
728x90'알고리즘 > 백준' 카테고리의 다른 글
[우선순위큐] 백준 1655번 : 가운데를 말해요 - C/C++ (0) 2021.03.07 [이분탐색/DFS] 백준 1939번 : 중량제한 - C/C++ (0) 2021.03.06 [알고리즘/DP] 백준 1912번: 연속합 - C++ (2) 2020.12.12 [알고리즘/DP] 백준 11055번: 가장 큰 증가 부분 수열 - C++ (0) 2020.12.12 [알고리즘/DP] 백준 11052번: 카드 구매하기 - C++ (0) 2020.12.12