[プログラマー/python]ネットワーク
🧑🏻💻 質問リンク
これは,代表的なアルゴリズム
クリックしてBFSとDFSの概念を理解します!
問題を解く
これは,代表的なアルゴリズム
BFS
とDFS
を用いた問題である.この2つの概念のみを理解して実施すれば容易に理解できるが、BFS
およびDFS
を正確に理解することはまだ困難である.もう一度練習しなきゃクリックしてBFSとDFSの概念を理解します!
コード#コード#
from collections import deque
# 깊이 우선 탐색
def DFS(v, visited, n, computers):
# 방문한 네트워크로 표시
visited[v] = True
for e in range(n):
# e가 해당 네트워크가 아니어야 하고 컴퓨터가 서로 연결되어 있을 때
if e != v and computers[v][e] == 1:
# 다음 네트워크가 방문하지 않았을 때
if not visited[e]:
DFS(v, visited, n, computers)
# 너비 우선 탐색
def BFS(v, visited, n, computers):
# 앞으로 찾을 네트워크
need_visit = deque([v])
while need_visit:
# 해당 노드들을 꺼냄
node = need_visit.popleft()
if not visited[node]:
visited[node] = True
for e in range(n):
if e != node and computers[node][e] == 1:
if not visited[e]:
need_visit.append(e)
def solution(n, computers):
answer = 0
visited = [False] * n
for v in range(n):
if not visited[v]:
#DFS(v, visited, n, computers)
BFS(v, visited, n, computers)
answer += 1
return answer
結果
Reference
この問題について([プログラマー/python]ネットワーク), 我々は、より多くの情報をここで見つけました https://velog.io/@norighthere/프로그래머스-Python-네트워크テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol