반응형
//접근 방법 : dfs로 연결이 된 부분(1)을 전부 찾는다.
//컴퓨터와 연결되 있는 네트워크를 찾고 answer에 값을 증가 시킨다.
//이미 연결이 이루어진 곳은 visited의 true를 통해 재 방문 하지 않는다.
fun solution(n: Int, computers: Array<IntArray>): Int {
var answer = 0
val visited = BooleanArray(computers.size)
for (i in computers.indices) {
if (!visited[i]) {
answer++
dfs(i, visited, computers)
}
}
return answer
}
private fun dfs(
index: Int,
visited: BooleanArray,
computers: Array<IntArray>
) {
visited[index] = true
for (i in computers.indices) {
if (!visited[i] && computers[index][i] == 1) {
dfs(i, visited, computers)
}
}
}
반응형
'알고리즘' 카테고리의 다른 글
백준 1806 부분합 코틀린 (0) | 2020.07.05 |
---|---|
백준 2003 투포인터 수들의 합2 코틀린 (0) | 2020.07.04 |
스택) 백준 9935번: 문자열 폭발 코틀린 (0) | 2020.05.01 |
프로그래머스 기능개발 코틀린 (0) | 2020.01.19 |
프로그래머스 타겟넘버 (0) | 2019.12.31 |