[문제 링크]
https://programmers.co.kr/learn/courses/30/lessons/49189
[입출력 예]
n |
vertex |
return |
6 |
[[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] |
3 |
[소스코드]
from collections import deque
def bfs(v,visited,graph):
count=0
q=deque([[v,count]]) #4
# 노드번호,count
while q:
value=q.popleft()
v=value[0]
count=value[1]
if visited[v]==-1:#5
# 미방문 지역일 경우
# 방문여부갱신, count증가
# 증가된 카운트를 다음 점과 연결
# count를 누적방식으로..
# visited는 방문 여부를 알 수 있으면서 동시에
# count값을 담게 됨.
visited[v]=count
count+=1
for e in graph[v]:
q.append([e,count])
def solution(n, edge):
graph=[[] for _ in range(n+1)] #1
visited=[-1 for _ in range(n+1)] #2
for i in edge:
graph[i[0]].append(i[1])
graph[i[1]].append(i[0])
# 인접리스트, 방문리스트 만들기
bfs(1,visited,graph) #3
#bfs 진행
max_visited=max(visited) #6.
#max함수는 한 번만 호출하자!
return visited.count(max_visited)