Ginny H
Ginny
Ginny H

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Ginny H

Ginny

[BFS/DFS] 네트워크 (python) - 프로그래머스
Algorithm/BFS&DFS

[BFS/DFS] 네트워크 (python) - 프로그래머스

2022. 6. 21. 19:18

https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3 

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있

programmers.co.kr

 

Point : 노드끼리 연결 상태(네트워크) 파악하기! -> 네트워크의 총 개수 찾기

자료 구조 : visited

(이미 연결된 네트워크가 있는 지 확인하는 용도로 visited = [False] * n을 사용함)

 

이 문제는 그래프의 연결 상태를 파악해야 하므로 BFS, DFS 둘 다 가능하다.

1. DFS : 재귀적으로 네트워크 연결상태 파악

2. BFS : 큐 사용해서 네트워크 연결상태 파악

 

 

 

1. DFS 사용한 풀이 : 재귀적으로 탐색

def solution(n, computers):
    answer = 0
    visited = [False] * n
    
    def dfs(start):
        visited[start] = True
        for i in range(n):
            if i != start and computers[start][i] == 1 and visited[i] == False:
                dfs(i)
  
    for i in range(n):
        if visited[i] == False:
            dfs(i)
            answer += 1
    
    return answer

 

 

2. BFS 사용한 풀이 : 큐 사용해서 연결 노드 탐색

 

from collections import deque
def solution(n, computers):
    answer = 0
    visited = [False] * n
    
    def bfs(start):
        q = deque([start])
        while q:
            now = q.popleft()
            visited[now] = True
            for i in range(n):
                if i != now and computers[now][i] == 1 and visited[i] == False:
                    visited[i] = True
                    q.append(i)
                
    for i in range(n):
        if visited[i] == False :
            bfs(i)
            answer += 1
    
    return answer

'Algorithm > BFS&DFS' 카테고리의 다른 글

[BFS] 아기상어 (python)  (0) 2022.06.24
[BFS] 블록 이동하기 (python)  (0) 2022.06.23
[BFS/DFS] 연구소 (python)  (0) 2022.06.21
[BFS/다익스트라] 특정 거리의 도시 찾기 (python)  (0) 2022.06.20
[DFS] 연산자 끼워넣기 (python)  (0) 2022.06.19
    'Algorithm/BFS&DFS' 카테고리의 다른 글
    • [BFS] 아기상어 (python)
    • [BFS] 블록 이동하기 (python)
    • [BFS/DFS] 연구소 (python)
    • [BFS/다익스트라] 특정 거리의 도시 찾기 (python)
    Ginny H
    Ginny H

    티스토리툴바