DevKim

[Python] 프로그래머스 LV.03 - 네트워크 본문

알고리즘 PS

[Python] 프로그래머스 LV.03 - 네트워크

on_doing 2021. 3. 13. 18:17
728x90

programmers.co.kr/learn/courses/30/lessons/43162

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있

programmers.co.kr

[ 알고리즘 ]

BFS

 

[문제 접근]

(생략)

 

 

[코드]

from collections import deque
def solution(n, computers):
    que=deque()
    cnt = 0
    visited=[0]*(n)
    for i in range(n):
        computers[i][i]=0
        if 1 in computers[i]: # 외톨이가 아니면
            continue
        else:
            visited[i]=1
            cnt+=1
            
    for i in range(n):
        for j in range(n):
            if visited[i]==1:
                continue
            else:
                if computers[i][j]==1:
                    que.append((i,j))
                    computers[i][j]=0
                    visited[i]=1
                    cnt+=1
                    
        while que:
            x,y=que.pop()
            for k in range(n):
                if computers[y][k]==1:
                    que.append((y,k))
                    computers[y][k]=0
                    visited[y]=1
        if 1 in visited:
            continue
        else:
            break
            
    return cnt
728x90
Comments