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