문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/43162
from collections import deque
# cnt = 0
def solution(n, computers):
visited = [False] * n
cnt = 0
def bfs(start):
queue = deque()
queue.append(start)
visited[start] = True
nonlocal cnt
# global cnt
while queue:
v = queue.popleft()
for i in range(len(computers[v])):
if not visited[i] and computers[v][i] ==1:
visited[i] = True
queue.append(i)
cnt+=1
for i in range(n):
bfs(i)
return n-cnt
def solution(n, computers):
answer = 0
visited = [0 for i in range(n)]
def dfs(computers, visited, start):
stack = [start]
while stack:
j = stack.pop()
if visited[j] == 0:
visited[j] = 1
# for i in range(len(computers)-1, -1, -1):
for i in range(0, len(computers)):
if computers[j][i] ==1 and visited[i] == 0:
stack.append(i)
i=0
while 0 in visited:
if visited[i] ==0:
dfs(computers, visited, i)
answer +=1
i+=1
return answer