-
[프로그래머스] 네트워크 문제 파이썬(Python) 풀이Problem Solving/Programmers 2021. 10. 4. 17:59
https://programmers.co.kr/learn/courses/30/lessons/43162
def solution(n, computers): visited = [[False] * n for _ in range(n)] def dfs(i, j): visited[i][j], visited[j][i] = True, True for k in range(n): if not visited[j][k] and computers[j][k] == 1: dfs(j, k) count = 0 for i in range(n): for j in range(n): if not visited[i][j] and computers[i][j] == 1: dfs(i, j) count += 1 return count
그래프가 몇개의 요소인지 파악하면 되는 문제다.
따라서 dfs로 연결된 노드들을 모두 탐색하며 탐색된 노드는 visited 의 값을 True로 할당해,
방문 표시를 남겨 그 이후에는 탐색을 방지하고 dfs가 한 번 실행될 때마다 count를 1씩 증가시켰다.
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 소수 찾기(Level 2) 문제 파이썬(Python) 풀이 (0) 2021.10.11 [프로그래머스] 오픈채팅방 문제 파이썬(Python) 풀이 (0) 2021.10.04 [프로그래머스] 소수찾기 (0) 2021.06.14