본문 바로가기
알고리즘/소스코드

PROGRAMMERS 43162: 네트워크

by cjw.git 2021. 1. 6.

Link : programmers.co.kr/learn/courses/30/lessons/43162


Python

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def DFS(node, network, link_data, value):
    for i in link_data[node]:
        if i in network:
            if network[i] == -1:
                network[i] = value
                DFS(i, network, link_data, value)
 
 
def solution(n, computers):
    global map_size
    map_size = n
    node_data = dict()
    network = dict()
    for i in range(n):
        network[i] = -1
    for y in range(n):
        for x in range(n):
            if x != y and computers[y][x] == 1:
                if x not in node_data:
                    node_data[x] = {y}
                else:
                    node_data[x].add(y)
                if y not in node_data:
                    node_data[y] = {x}
                else:
                    node_data[y].add(x)
    counter = 0
    for i in range(n):
        if i in node_data:
            DFS(i, network, node_data, i)
    result = dict()
    for i in network:
        if network[i] == -1:
            counter += 1
        else:
            result[network[i]] = 0
    return counter + len(result)
cs

FeedBack

  1. 소스가 최적화가 안되어있어 굉장히 복잡합니다. 추후 보강이 필요합니다.

 

 

 

cjw.git@gmail.com

'알고리즘 > 소스코드' 카테고리의 다른 글

PROGRAMMERS 68645: 삼각 달팽이  (0) 2021.01.06
PROGRAMMERS 49993: 스킬트리  (0) 2021.01.06
PROGRAMMERS 42860: 조이스틱  (0) 2021.01.06
PROGRAMMERS 43238: 입국 심사  (0) 2021.01.05
PROGRAMMERS 43165: 타겟 넘버  (0) 2021.01.05

댓글