🔅코딩테스트 공부🔅/❗프로그래머스(Lv.3)
[프로그래머스] Level3. 네트워크(python)
윤무무
2023. 4. 30. 02:41
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