발상
방문했는데 연결되어 있으면 끝까지 내려가서 싹다 방문 처리함
(-> 이거 다 돌고 방문 아닌 거 잡히면 새로운 그룹의 시작 노드인 거임!! 갯수 증가)
코드
def dfs(computers, visited, node):
visited[node]=True
for idx, value in enumerate(computers[node]):
if idx!=node and value==1 and not(visited[idx]):
dfs(computers, visited,idx)
#print(node, idx, child)
def solution(n, computers):
visited = [False] * n
answer = 0
start = 0
visited[start] = start
for node in range(n):
if not(visited[node]):
dfs(computers, visited, node)
answer+=1
return answer
반례
tests = [
[3, [[1, 1, 0], [1, 1, 0], [0, 0, 1]]],
[3, [[1, 1, 0], [1, 1, 1], [0, 1, 1]]]
]
for n, computers in tests:
print(solution(n, computers))
// answer: 2, 1