세용용용용
2023. 10. 24. 10:28



코딩테스트 연습 - 네트워크 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 코드
from collections import deque
def solution(n, computers):
answer = 0
# 연결된 네트워크 딕셔너리
networt = {}
for i in range(len(computers)):
#print(computers[i])
networt[i+1] = []
for j in range(len(computers[0])):
if computers[i][j] == 1 and j!=i:
networt[i+1].append(j+1)
#print(networt)
# 방문처리 해주면서 연결된 네트워크 집합 개수를 구한다
visit = [0]*n
count = 0
for i in range(1, n+1):
if visit[i-1] == 1:
continue
count += 1
queue = deque()
queue.append((i,networt[i]))
while queue:
x,y = queue.popleft()
visit[x-1] = 1
for z in y:
if visit[z-1]==0 and z in networt:
queue.append((z,networt[z]))
#print(count)
answer = count
return answer
solution(3, [[1, 1, 0], [1, 1, 1], [0, 1, 1]])