프로그래머스
[프로그래머스]네트워크
daniel7481
2022. 7. 29. 10:03
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43162
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
레벨3라고 하기에는 다소 난이도가 쉬운 편이었다. 간단한 BFS로 풀 수 있었는데, 단순히 연결된 네트워크가 몇 개인지 확인하면 되는 문제였다. 0부터 n-1까지 탐색하면서 만약 연결되어 있으면 방문 처리를 하고, 방문 처리가 된 노드는 방문을 하지 않게 하면서, 매 탐색시마다 answer에 하나씩 더해주면 된다.
from collections import deque
def solution(n, computers):
answer = 0
visited = [False for _ in range(n)]
for i in range(n):
if not visited[i]:
answer += 1
q = deque()
q.append(i)
visited[i] = True
while q:
x = q.popleft()
for v in range(len(computers[x])):
if computers[x][v] == 1:
if not visited[v]:
q.append(v)
visited[v] = True
return answer
반응형