https://programmers.co.kr/learn/courses/30/lessons/43162
백준에 있는 dfs/bfs문제들중 영역 개수를 구하는 문제들이 있는데 그와 유사한 방식으로 해결하였다.
그래프를 dfs방식으로 탐색하면서 방문자 배열을 변경하였고, 새 정점으로부터 출발하면 정답개수를 하나씩 추가하였다.
def solution(n, computers):
visited = [0] * (n+1)
stack = []
graph = [[] for i in range(n+1)]
answer = 0
for i in range(n):
for j in range(n):
if i != j and computers[i][j] == 1:
graph[i+1].append(j+1)
for i in range(1,n+1):
if not visited[i]:
visited[i] = 1
answer += 1
stack.append(i)
while stack:
k = stack.pop()
for j in graph[k]:
if not visited[j]:
visited[j] = 1
stack.append(j)
return answer