programmers - 네트워크(파이썬)
resilient
·2021. 5. 13. 13:16
728x90
반응형
programmers.co.kr/learn/courses/30/lessons/43162
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
n = 3
computers = [[1, 1, 0], [1, 1, 1], [0, 1, 1]]
import sys
sys.setrecursionlimit(10000)
def solution(n, computers):
visited = [False]*(n+1)
graph = [[] for _ in range(n+1)]
for i in range(len(computers)):
for j in range(len(computers)):
if i != j:
if computers[i][j] == 1:
graph[i+1].append(j+1)
def dfs(start):
visited[start] = True
for i in graph[start]:
if visited[i]==False:
dfs(i)
answer = 0
for i in range(1,n+1):
if visited[i] == False:
dfs(i)
answer += 1
return answer
print(solution(n,computers))
dfs를 사용해서 연결되어있는 노드끼리가 끝나게 되면 카운트를 1씩 해주면서 답을 도출해냈다.
반응형
'자료구조 & 알고리즘 > 프로그래머스(programmers)' 카테고리의 다른 글
programmers - 셔틀버스 (0) | 2021.05.29 |
---|---|
programmers - 카펫(파이썬) (0) | 2021.05.14 |
programmers - 기지국 설치(파이썬) (0) | 2021.05.12 |
programmers - 합승 택시요금 (0) | 2021.05.08 |
programmers - 숫자게임 (0) | 2021.05.08 |