๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Python] 24445๋ฒ_์๊ณ ๋ฆฌ์ฆ ์์ - ๋๋น ์ฐ์ ํ์ 2
Dbswnstjd
2022. 12. 16. 05:52
๋ฌธ์
https://www.acmicpc.net/problem/24445
24445๋ฒ: ์๊ณ ๋ฆฌ์ฆ ์์ - ๋๋น ์ฐ์ ํ์ 2
์ฒซ์งธ ์ค์ ์ ์ ์ ์ N (5 ≤ N ≤ 100,000), ๊ฐ์ ์ ์ M (1 ≤ M ≤ 200,000), ์์ ์ ์ R (1 ≤ R ≤ N)์ด ์ฃผ์ด์ง๋ค. ๋ค์ M๊ฐ ์ค์ ๊ฐ์ ์ ๋ณด u v๊ฐ ์ฃผ์ด์ง๋ฉฐ ์ ์ u์ ์ ์ v์ ๊ฐ์ค์น 1์ธ ์
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 24445๋ฒ ๋ฌธ์ - ์๊ณ ๋ฆฌ์ฆ ์์
- ๋๋น ์ฐ์ ํ์ 2
from collections import deque
import sys
input = sys.stdin.readline
n, m, r = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited = [0] * (n+1)
count = 1
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
def bfs(n):
global count
q = deque()
q.append(n)
visited[n] = 1
while q:
v = q.popleft()
graph[v].sort(reverse=True)
for i in graph[v]:
if not visited[i]:
count += 1
visited[i] = count
q.append(i)
bfs(r)
for v in visited[1:]:
print(v)
BFS๋ฅผ ์ฌ์ฉํ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ์ด๋ค.