프로그래머스 네트워크(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 구현하는부분은 혼자 공부하며서 작성해놨던것 복붙해서 썼는데
실제 코테에서는 복붙해서 쓸수있나?...모르겠다 아마 안되겠지?..

고민하는시간없이 쭉 쓸수있게 복습좀 해놔야겠다

끝!!

좋은 웹페이지 즐겨찾기