프로그래머스. Level 3. 네트워크 파이썬 풀이
문제링크 https://programmers.co.kr/learn/courses/30/lessons/43162
위의 예제 1에 대하여 아래 코드 적용
1번에 대하여 bfs를 실행하였다면 1,2번이 방문처리 되고 네트워크 수를 1 늘린다..
2번에 대하여 bfs를 실행하였지만 이미 방문된 컴퓨터이기 때문에 넘어가고
3번에 대하여 bfs를 실행한다면 방문되지 않은 컴퓨터이기 때문에 네트워크 수를 1 늘린다.
from collections import deque
def solution(n, computers):
answer = 0
visited = [False] * (n+1)
graph = [[] for _ in range(n+1)]
for i in range(1, n+1):
for j in range(n):
if computers[i-1][j] == 1:
graph[i].append(j+1)
def bfs(start):
queue = deque([start])
if visited[start] == False:
pass
else:
return 0
visited[start] = True
while queue:
v = queue.popleft()
for i in graph[v]:
if not visited[i]:
queue.append(i)
visited[i] = True
return 1
for i in range(1, n+1):
answer += bfs(i)
return answer