프로그래머스 네트워크(Lv 3)
문제
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 구현하는부분은 혼자 공부하며서 작성해놨던것 복붙해서 썼는데
실제 코테에서는 복붙해서 쓸수있나?...모르겠다 아마 안되겠지?..
고민하는시간없이 쭉 쓸수있게 복습좀 해놔야겠다
끝!!
Author And Source
이 문제에 관하여(프로그래머스 네트워크(Lv 3)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjo1130/프로그래머스-네트워크저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)