[PS] 네트워크

szlee·2024년 11월 4일
0

알고리즘 PS

목록 보기
18/24

네트워크

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
            
    
profile
🌱

0개의 댓글