프로그래머스 네트워크 코드 및 해설 (파이썬)
2021. 6. 22. 22:13ㆍalgorithm
반응형
https://programmers.co.kr/learn/courses/30/lessons/43162
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
DFS를 수행하는 함수 dfs를 정의하고, 모든 컴퓨터를 방문할 때까지 dfs를 반복합니다. 우선 0번째 컴퓨터부터 시작해서 이와 직/간접적으로 연결되어 있는 모든 컴퓨터들 방문합니다. 이후에도 아직 방문하지 않은 컴퓨터가 있으면 answer를 하나씩 증가시키고, 방문하지 않은 컴퓨터 중 번호가 가장 작은 것에서부터 시작해 다시 dfs를 호출합니다. 모든 컴퓨터를 방문하면 반복을 종료하고 answer를 반환합니다.
https://codlingual.tistory.com/182
DFS, BFS
DFS - 스택 - 재귀함수 이용 # DFS 메서드 정의 def dfs(graph, v, visited): # 현재 노드를 방문 처리 visited[v] = True print(v, end = '') # 현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[..
codlingual.tistory.com
def dfs(node, computers, visited):
visited[node] = True
for i, neighbor in enumerate(computers[node]):
# 인접노드 중 자기 자신이 아니고 아직 방문하지 않은 노드에 대해
if neighbor > 0 and i != node and visited[i] == False:
dfs(i, computers, visited)
return visited
def solution(n, computers):
answer = 1
visited = [False] * n
startNode = 0
# 모두 방문할 때까지
while True:
visited = dfs(startNode, computers, visited)
if False in visited:
startNode = visited.index(False)
answer += 1
else:
break
return answer
반응형
'algorithm' 카테고리의 다른 글
리트코드 Populating Next Right Pointers in Each Node 코드 및 해설 (파이썬) (0) | 2021.06.23 |
---|---|
백준 바이러스 코드 및 해설 (파이썬) (0) | 2021.06.22 |
DFS, BFS (0) | 2021.06.22 |
백준 트리 순회 코드 및 해설 (파이썬) (0) | 2021.06.08 |
백준 회전하는 큐 코드 및 해설 (파이썬) (0) | 2021.06.08 |