반응형
programmers.co.kr/learn/courses/30/lessons/43162
dfs문제이므로 dfs로 접근하였다.
순차적으로 탐색하되 이미 탐색을 완료한 곳이면 즉시 탐색을 중단하고, 탐색하지 않은 곳이면 탐색 목록에 추가시키며 끝까지 탐색한다.
이후 solution 함수에서 탐색 목록에 없었던 곳을 탐색하였다면 그때마다 answer에 1을 더해준다.
answer = 0
def solution(n, computers):
global answer
discovered=[]
def dfs(i):
global answer
if not i in discovered:
discovered.append(i)
else:
return
for k in range(len(computers)):
if i!=k and computers[i][k]==1: #linked
dfs(k)
for i in range(len(computers)):
if i not in discovered:
dfs(i)
answer +=1
return answer
댓글