프로그래머스 네트워크 with kotlin
BFS로 구현
fun solution(n: Int, computers: Array<IntArray>): Int {
var answer = 0
val visited = BooleanArray(n) // 노드 방문 여부 체크 배열
fun bfs(start: Int) {
val queue: Queue<Int> = LinkedList()
queue.add(start)
visited[start] = true
while (queue.isNotEmpty()) {
val node = queue.poll()
for (i in 0 until n) {
if (computers[node][i] == 1 && !visited[i]) {
queue.add(i)
visited[i] = true
}
}
}
}
for (i in 0 until n) {
if (!visited[i]) { // 방문하지 않은 노드가 있으면
answer++
// 해당 네트워크의 모든 컴퓨터를 방문 처리 (bfs)
bfs(i)
}
}
return answer
}
'코딩테스트 준비(kotlin) > DFS, BFS' 카테고리의 다른 글
[프로그래머스 kotlin] 숫자 변환하기 (0) | 2024.07.03 |
---|---|
[프로그래머스, kotlin] 타겟넘버 (0) | 2024.06.28 |
[프로그래머스 , kotlin] 피로도 (0) | 2024.06.27 |
[kotlin] 백준 1280 DFS와 BFS (0) | 2023.10.27 |