https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3
def dfs(graph,start_node):
visited, need_visit = list(), list()
visited.append(start_node)
need_visit.extend(graph[start_node])
while need_visit :
node = need_visit.pop()
if node not in visited:
visited.append(node)
need_visit.extend(graph[node])
return visited
def solution(n, computers):
answer = 0
arr = dict()
for i in range(n):
arr[i] = []
for i in range(n):
for j in range(n):
if i == j :
continue
if computers[i][j] == 1:
arr[i].append(j)
finished = []
for i in range(len(arr)):
if i in finished:
continue
else:
answer += 1
finished.append(i)
finished.extend(dfs(arr,i))
return answer
bfs 나 dfs로 구현하면 될것같아 문제읽자마자 그냥 쭉 써서 돌렸더니 바로됐다
오랜만이다 이렇게 한번에 빠르게된것!!
dfs 구현하는부분은 혼자 공부하며서 작성해놨던것 복붙해서 썼는데
실제 코테에서는 복붙해서 쓸수있나?...모르겠다 아마 안되겠지?..
고민하는시간없이 쭉 쓸수있게 복습좀 해놔야겠다
끝!!