본문 바로가기
PS/프로그래머스

프로그래머스: 가장 먼 노드 python, 파이썬

by 지기_ 2021. 7. 2.
반응형

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/49189#qna

 

코딩테스트 연습 - 가장 먼 노드

6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

programmers.co.kr

2. 풀이

bfs

 

3. 구현

from collections import deque

def solution(n, edge):
    answer = 0
    dic={}
    
    for s,e in edge:
        if s in dic:
            dic[s].append(e)
        else:
            dic[s]=[e]
        if e in dic:
            dic[e].append(s)
        else:
            dic[e]=[s]

    q=deque()
    visit = {}
    dist=0
    
    q.append((dist, 1))
    visit[1]=True
    
    lis = []
    
    while q:
        cur = q.popleft()
        d = cur[0]
        n = cur[1]
        for iter in dic[n]:
            if iter in visit:
                continue
            lis.append((d+1,iter))
            q.append((d+1,iter))
            visit[iter]=True
            
    lis = sorted(lis, reverse=True)
    print(lis)
    
    for item in lis:
        if item[0]==lis[0][0]:
            answer+=1
    
    return answer

 

반응형

댓글