DFS를 통해 '연결되어 있는지' 확인한다. 노드를 하나씩 체크하면서 연결 여부를 visited에 기록한다. visited에 기록되어 있지 않다면 사전에 기록하지 않았던 노드이므로 다시 연결한다. 즉 computers라는 연결 여부를 담은 리스트를 사용해 네트워크를 카운트한다.
def solution(n, computers):
visited = [[False]*n for i in range(n)]
result = 0
def DFS(i, j):
visited[i][j] = True
visited[j][i] = True
for k in range(n):
if not visited[j][k] and computers[j][k] == 1:
DFS(j, k)
for i in range(n):
for j in range(n):
if not visited[i][j] and computers[i][j] == 1:
DFS(i, j)
result += 1
return result