Published 2024. 7. 19. 21:06

유형 : BFS/DFS (어떤 걸 해도 상관 없을 듯)

풀이 시간 : 15분

 

예전에 과제로 비슷한 문제를 수행한 적이 있어서 쉽게 풀었다. 

visited를 활용, 만약 방문하지 않은 노드가 있다면 answer += 1을 해 주고 (네트워크가 존재한다는 뜻)

해당 노드를 기점으로 방문 가능한 노드를 전부 방문한다. (bfs, dfs)

from collections import deque

def solution(n, computers):
    answer = 0
    visited = [False for i in range(n)]
    
    for i in range(n):
        if visited[i] == False:
            answer += 1
            
            #settings
            queue = deque()
            queue.append(i)
            visited[i] = True
            
            #bfs search
            while queue:
                k = queue.popleft()
                for j in range(len(computers[k])):
                    if j != i and computers[k][j] == 1:
                        #connected node
                        if visited[j] == False:
                            visited[j] = True
                            queue.append(j)
    return answer

'프로그래머스 > Lv. 3' 카테고리의 다른 글

5. 정수 삼각형 (DP)  (0) 2024.07.19
4. 여행경로 ★★  (0) 2024.07.19
3. 단어 변환 (BFS)  (0) 2024.07.19
1. 베스트앨범 (해시 테이블) ★ (이차원 함수의 정렬)  (0) 2024.07.17
복사했습니다!