시배's Android
Algorithm | 백준 Kotlin 2606 바이러스 본문
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍
www.acmicpc.net
import java.util.*
private fun main() {
val a = readLine()!!.toInt()
val b = readLine()!!.toInt()
val map = Array(a + 1) { IntArray(a + 1) { 0 } }
val visited = BooleanArray(a + 1)
var ans = 0
repeat(b) {
val (c, d) = readLine()!!.split(" ").map { it.toInt() }
map[c][d] = 1
map[d][c] = 1
}
fun bfs() {
val queue = LinkedList<Int>()
queue.add(1)
visited[1] = true
ans++
while (queue.isNotEmpty()) {
val now = queue.poll()
for (i in 1..a) {
if (map[now][i] == 1 && !visited[i]) {
queue.add(i)
visited[i] = true
ans++
}
}
}
}
bfs()
println(ans - 1)
}
'Algorithm' 카테고리의 다른 글
Algorithm | 백준 Kotlin 1206 사람의 수 (0) | 2023.10.09 |
---|---|
Algorithm | 백준 Kotlin 7576 토마토 (1) | 2023.10.07 |
Algorithm | 백준 Kotlin 12101 1,2,3 더하기 2 (0) | 2023.10.07 |
Algorithm | 백준 Kotlin 5548 행성 탐사 (0) | 2023.10.07 |
Algorithm | 백준 Kotlin 3273 두 수의 합 (0) | 2023.10.07 |