본문 바로가기
🔅코딩테스트 공부🔅/❗프로그래머스(Lv.3)

[프로그래머스] Level3. 네트워크(python)

by 윤무무 2023. 4. 30.

https://school.programmers.co.kr/learn/courses/30/lessons/43162

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 내가 작성한 코드

 

1. BFS를 이용해 문제를 해결했다.

 

2. 노드와 연결되어있고, 방문한 적 없는 경우 bfs를 돌리고

 

3. 2번의 과정을 모든 노드를 방문할 때까지 반복한다.

 

from collections import deque

def solution(n, computers):
    maps = [True] * (n)
    cnt = 0
    
    for i in range(n): #방문한 적 없는 노드 탐색
        if maps[i] == True:
            maps[i] = False
            bfs(i,n,computers,maps)
            cnt+=1
    return cnt
            
def bfs(start,n,computers,maps):
	#bfs를 이용해 연결되어 있는 노드 확인
    q = deque()
    q.append(start)
    
    while q:
        start = q.pop()
        for i in range(n):
            if i != start and computers[start][i] == 1 and maps[i] == True:
                maps[i] = False
                q.append(i)
            else:
                continue

댓글