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
- 소스가 최적화가 안되어있어 굉장히 복잡합니다. 추후 보강이 필요합니다.
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 |
댓글