ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์ ๋ฐ์ด๋ฌ์ค๊ฐ ํ๋์ ๋คํธ์ํฌ ์์ญ์์ ํผ์ง๋ค. 1๋ฒ ์ปดํจํฐ๋ถํฐ ์์ํ์ฌ ์ ๋ฐ์ด๋ฌ์ค๊ฐ ๊ฐ์ผ๋๋ ์ปดํจํฐ์ ๊ฐ์๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ BFS/DFS ํ์์ ํตํด 1๋ฒ ๋ ธ๋๋ก๋ถํฐ ํ์ ๊ฐ๋ฅํ ์์ญ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ด๊ธฐ์ ์ ๋ ฅ๋๋ ๊ทธ๋ํ์ ์ ๋ณด๋ฅผ ์๋ฐฉํฅ์ผ๋ก ๊ธฐ๋กํ๊ณ ํ์์ ์งํํ๋ฉด ๋๋ค.
์ฝ๋
from sys import stdin
from collections import defaultdict, deque
def bfs(start):
q = deque([start])
while q:
cur_node = q.popleft()
for next_node in graph[cur_node]:
if next_node not in visited:
visited.append(next_node)
q.append(next_node)
# 1๋ฒ ์ปดํจํฐ๋ฅผ ์ ์ธํ ๋ค๋ฅธ ๋
ธ๋๋ค.
return len(visited) - 1
if __name__ == '__main__':
n = int(stdin.readline())
graph = defaultdict(set)
visited = [1]
for _ in range(int(stdin.readline())):
node1, node2 = map(int, stdin.readline().split())
graph[node1].add(node2)
graph[node2].add(node1)
print(bfs(1))
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 17070 ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1 (0) | 2020.10.05 |
---|---|
๋ฐฑ์ค: 1655 ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (0) | 2020.10.04 |
๋ฐฑ์ค: 16956 ๋๋์ ์ (0) | 2020.10.04 |
๋ฐฑ์ค: 3015 ์ค์์์ค ์ฌ๊ฒฐํฉ (0) | 2020.10.03 |
๋ฐฑ์ค: 9935 ๋ฌธ์์ด ํญ๋ฐ (0) | 2020.10.03 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ