bfs
from collections import deque
def solution(n, computers):
def bfs(x):
visit[x] = 1
queue = deque()
queue.append(x)
while queue:
y = queue.popleft()
for k in range(n):
if computers[y][k] == 1 and visit[k] == 0:
visit[k] = 1
queue.append(k)
visit = [0]*n
cnt = 0
for i in range(n):
if visit[i] == 0 :
bfs(i)
cnt += 1
return cnt
dfs - stack
from collections import deque
def solution(n, computers):
def dfs(x):
nonlocal cnt, stack
visit[x] = 1
stack.append(x)
while stack:
x = stack.pop()
for j in range(n):
if computers[x][j] == 1 and visit[j] == 0:
dfs(j)
visit = [0]*n
cnt = 0
stack = []
for i in range(n):
if visit[i] == 0 :
dfs(i)
cnt += 1
return cnt