728x90
https://school.programmers.co.kr/learn/courses/30/lessons/49189
그래프 문제이다
딱히 추가적으로 구현해야 할 건 없고, 양방향 그래프를 잘 입력받은 뒤
bfs로 탐색을 해주면 된다
간선에 가중치가 붙으면 다익스트라를 이용해주면 된다
from collections import deque
def solution(n, edge):
answer = 0
graph = [[] for _ in range(n+1)]
visited = [False] *(n+1)
dist = [0] * (n+1)
q = deque()
for start, end in edge:
graph[start].append(end)
graph[end].append(start)
visited[1]=True
dist[1] = 0
q.append(1)
while q:
now = q.popleft()
for next in graph[now]:
cost = dist[now] + 1
if not visited[next]:
dist[next]=dist[now]+1
q.append(next)
visited[next] =True
answer = dist.count(max(dist))
return answer
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/파이썬] 네트워크 (1) | 2023.10.12 |
---|---|
[프로그래머스/C++] 입국심사 (0) | 2023.10.04 |
[프로그래머스/파이썬] N으로 표현 (0) | 2023.09.20 |
[프로그래머스/파이썬] 카펫 (0) | 2023.09.17 |
[프로그래머스/파이썬] 소수 찾기 (0) | 2023.09.16 |