📖 깊이/너비 우선 탐색(DFS/BFS) > 네트워크

📖What I thought

  • DFS/BFS의 아주 기본적인 형태의 문제라 그냥 코드 스니펫 체크하는 느낌으로다가 풀어줬음

📖풀이

📎DFS

def solution(n, computers):
    def DFS(i):
        visited[i] = True
        
        for connect in range(n):
            if not visited[connect] and computers[i][connect]:
                DFS(connect)
    
    network = 0
    visited = [False for _ in range(n)]
    
    for i in range(n):
        if not visited[i]:
            DFS(i)
            network += 1
            
    return network

📎BFS

from collections import deque
 
def solution(n, computers):
    def BFS(i):
        q = deque([i])
        
        while q:
            now = q.popleft()
            
            visited[now] = True
            
            for connect in range(n):
                if not visited[connect] and computers[connect][now]:
                    q.append(connect)
    
    network = 0
    visited = [False for _ in range(n)]
    
    for i in range(n):
        if not visited[i]:
            BFS(i)
            network += 1
    
    return network

📖What I learned

  1. 가장 기본적인 형태의 BFS/DFS 코드 → 생각이 나지 않을 땐 이 코드를 보자⭐️

📖관련 지식