from collections import deque
def solution(n, edge):
answer = 0
graph = [[] for _ in range(n+1)]
visited = [0] * (n+1)
q = deque()
for i in edge:
graph[i[0]].append(i[1])
graph[i[1]].append(i[0])
q.append(1)
visited[1] = 1
while q:
n = q.popleft()
for j in graph[n]:
if visited[j] == 0:
visited[j] = visited[n] + 1
q.append(j)
answer = visited.count(max(visited))
return answer
처음엔 dfs로 시도 했다가 실패.
bfs를 통해 방문 배열 카운트로 풀이 했다.
bfs를 순회하면서 본인 노드의 바로 전 노드의 방문배열에 +1을 하면서 순회를 하면 가장 높은 방문배열을 가지는 값이 1과 가장 먼 노드가 된다.
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 전력망을 둘로 나누기 (0) | 2023.01.12 |
---|---|
[프로그래머스 / 파이썬 풀이] 가장 큰 수 (0) | 2023.01.11 |
[프로그래머스 / 파이썬 풀이] 네트워크 (0) | 2023.01.09 |
[프로그래머스 / 파이썬 풀이] 게임 맵 최단거리 (0) | 2023.01.09 |
[프로그래머스 / 파이썬 풀이] 모음사전 (0) | 2023.01.06 |