Daily LeetCode Challenge - 547. Number of Provinces

Min Young Kim·2023년 6월 4일
0

algorithm

목록 보기
162/198

Problem From.

https://leetcode.com/problems/number-of-provinces/

오늘 문제는 isConnected 배열에 각각의 노드가 연결되어있는지 안되어있는지 정보를 통해서, 연결되어있지 않고 떨어져있는 노드의 모음이 총 몇개인지 구하는 문제였다.

이 문제는 DFS 를 통해서 풀 수 있었는데, 먼저 방문하지 않은 노드를 통해 탐색하면서, 해당 되는 노드를 모두 방문한 것으로 만든다. 일련의 과정이 끝나면 정답에 1 을 더해주고, 위의 과정을 반복하면 떨어져있는 노드의 모음을 구할 수 있었다.

class Solution {
    fun findCircleNum(isConnected: Array<IntArray>): Int {
        val visited = mutableSetOf<Int>()

        fun dfs(from: Int) {
            for(i in isConnected.indices) {
                if (isConnected[from][i] == 1 && visited.add(i)) {
                    dfs(i)
                }
            }
        }

        var answer = 0
        for (i in isConnected.indices) {
            if (visited.add(i)) {
                dfs(i)
                answer += 1
            }
        }
        
        return answer
    }
}
profile
길을 찾는 개발자

0개의 댓글