네트워크
내코드는 아닌데 나보다 더 잘짜서 가져옴(속도, 가독성)
def visit(node, graph, visited):
visited[node] = 1
for child in range(len(graph[node])):
if not visited[child] and graph[node][child] == 1:
visit(child, graph, visited)
def solution(n, computers):
visited = [0] * n
answer = 0
for node in range(n):
if not visited[node]:
visit(node, computers, visited)
answer += 1
if sum(visited) == n:
break
return answer
풀이
0
번 노드부터n-1
번 노드까지DFS
를 돌리며 방문한 노드는 체크
DFS
순회가 끝나면 네트워크 하나를 정리한 것이므로answer += 1
그다음 방문하지 않은 노드 찾아서 다시 순회
코드를 워낙 간단하고 간결하게 잘짜서 설명할 것이 없다.