Search
Duplicate

네트워크

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

import sys; sys.setrecursionlimit(1000000) from collections import defaultdict def dfs(u, A, vis): if all(vis[v] for v in A[u]): return for v in A[u]: if not vis[v]: vis[u] = True dfs(v, A, vis) return def solution(n, computers): # CC 개수를 세는 문제. # Adj list가 더 편해서 computers를 AdjList로 변환. A = defaultdict(list) for i, row in enumerate(computers): for j, v in enumerate(row): if computers[i][j] == 1: A[i].append(j) A[j].append(i) # visited 배열을 초기화해두고 vis = [False] * n answer = 0 for u in range(n): if vis[u]: continue else: vis[u] = True dfs(u, A, vis) answer += 1 return answer
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges