역시 코테는 암기다.

연결된 노드는 하나로 세고, 그렇지 않은 노드들은 각각을 세주면 되는 문제.
n = 3
computers = [[1, 1, 0], [1, 1, 0], [0, 0, 1]]
answer = 2
def solution(n, computers):
answer = 0
visited = [False] * n
for i, computer in enumerate(computers):
stack = [computer]
if visited[i] == False:
while stack:
cur_node = None
for i, com in enumerate(stack[-1]):
if visited[i] == False and com == 1:
cur_node = i
break
if cur_node == None:
stack.pop()
else:
stack.append(computers[cur_node])
visited[cur_node] = True
answer += 1
return answer
stack을 다 돌면서 연결된 노드를 순회한다. 그리고 stack이 없어지면 다른 별개의 네트워크를 찾는다.
나름 쉽게 풀었던 DFS 문제였다.