https://school.programmers.co.kr/learn/courses/30/lessons/43162
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
'🔅코딩테스트 공부🔅 > ❗프로그래머스(Lv.3)' 카테고리의 다른 글
[프로그래머스] Level3 가장 먼 노드(python) (0) | 2023.05.01 |
---|
댓글