본문 바로가기
알고리즘

[알고리즘] 네트워크

by keel_im 2021. 3. 15.
반응형

포인트

  • 연결이 되어 있는지 안되어 있는지를 검사하는 방법, 방의 개수를 세는 방법으로 기억하고 있다. 
  • bfs로도 풀 수 있고 dfs 로도 풀 수 있다. 그것은 각자의 자유, 둘다 완전 탐색, 그래프를 순회하는 방법이라고 생각하면 좋다.

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

python

from collections import deque


def bfs(node: int, computers: list, visited: list):
    q = deque([node])
    visited[node] = 1

    while q:
        x = q.popleft()
        for i in range(len(computers[x])):
            if visited[i] == 0 and computers[x][i] == 1:
                q.append(i)
                visited[i] = 1


def solution(n: int, computers: list) -> int:
    answer = 0
    visited = [0] * n

    for i in range(n):
        if visited[i] == 0:
            answer += 1
            bfs(i, computers, visited)

    return answer


print(solution(3, [[1, 1, 0], [1, 1, 0], [0, 0, 1]]))
print(solution(3, [[1, 1, 0], [1, 1, 1], [0, 1, 1]]))
반응형

'알고리즘' 카테고리의 다른 글

[알고리즘] 크레인 인형뽑기 게임  (0) 2021.03.16
[알고리즘] 신규 아이디 추천  (0) 2021.03.16
[알고리즘] 인구 이동  (0) 2021.03.14
[알고리즘] 나무 재테크  (0) 2021.03.14
[알고리즘] 위장  (0) 2021.03.11

댓글