|
์ฝ๋ ์์ฑํ๊ธฐ
from collections import deque
def make_graph(graph, edge):
for e in edge:
graph[e[0]].append(e[1])
graph[e[1]].append(e[0])
def solution(n, edge):
answer = 0
visited = [0 for _ in range(n + 1)]
graph = [[] for _ in range(n + 1)]
make_graph(graph, edge)
queue = deque()
queue.append(1)
while queue:
now = queue.popleft()
for node in graph[now]:
order = visited[now] + 1
if visited[node] > order or visited[node] == 0:
visited[node] = order
queue.append(node)
return visited[2:].count(max(visited[2:]))
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
1.
๊ทธ๋ํ๋ฅผ ์ธ์ ๋ฆฌ์คํธ ํ์์ผ๋ก ๋ง๋ ๋ค.
2.
bfs ํํ๋ก ๊ฑฐ๋ฆฌ๋ฅผ ํ์ํ๋ฉด์ ์ธ์ ํ ๋
ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ค.
a.
์ธ์ ํ ๋
ธ๋๊ฐ ๋ฐฉ๋ฌธํ์ง ์์๊ฑฐ๋ (visited[node] == 0)
b.
๋ฐฉ๋ฌธํ์ผ๋ ํ์ฌ ๊ฑฐ๋ฆฌ๋ณด๋ค ๋์์ ๋ฐฉ๋ฌธํ์ ๋
ํ์ ์ถ๊ฐํ๊ณ ๋ฐฉ๋ฌธ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์ ํ๋ค.
3.
๋ฐฉ๋ฌธ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋์ ์์์ ๊ฐฏ์๋ฅผ ๋ฐํํ๋ค.
a.
๋ฆฌ์คํธ๋ฅผ 0๋ถํฐ ๋ง๋ค์ด์ 0๊ณผ 1์ ์ ์ธํ๊ณ 2๋ถํฐ ์ผ๋ค.