난이도: 실버2
사용 언어: Swift
카테고리: DFS
https://www.acmicpc.net/problem/11724
code
let nm = readLine()!.split(separator: " ").map { Int($0)! }
let n = nm[0]
let m = nm[1]
var link = Array(repeating: Array(repeating: false, count: n + 1), count: n + 1)
var visited = Array(repeating: false, count: n + 1)
for _ in 0..<m {
let uv = readLine()!.split(separator: " ").map { Int($0)! }
let u = uv[0]
let v = uv[1]
link[u][v] = true
link[v][u] = true
}
func dfs(start: Int) {
visited[start] = true
for i in 1...n {
if visited[i] == false && link[start][i] {
dfs(start: i)
}
}
}
var result = 0
for i in 1...n {
if visited[i] == false {
result += 1
dfs(start: i)
}
}
print(result)
'코테' 카테고리의 다른 글
[BFS] 백준: 적록색약(Swift) (0) | 2022.10.29 |
---|---|
[BFS] 백준: 섬의 개수(Swift) (0) | 2022.10.27 |
[BFS] 백준: 유기농 배추(Swift) (0) | 2022.10.24 |
[DFS] 백준: 바이러스(Swift) (0) | 2022.10.20 |
[BFS] 백준: 단지번호붙이기(Swift) (0) | 2022.10.20 |