풀이
- 이전 게시글인 깊이 우선 탐색 1 의 방법에서
- bfs로 바꾸는 것만 달라졌기에 간단하게 해결
import sys
from collections import deque
input = sys.stdin.readline
n,m,r = map(int,input().split())
_dic = {i:[] for i in range(1,n+1)}
visit = [0]*(n+1)
cnt = 1
visit[r] = cnt
for i in range(m):
u,v = map(int,input().split())
_dic[u].append(v)
_dic[v].append(u)
for i in range(1,n): _dic[i].sort()
q = deque([r])
while q:
s = q.popleft()
for i in _dic[s]:
if not visit[i]:
cnt += 1
visit[i] = cnt
q.append(i)
[print(i) for i in visit[1:]]
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 1283번] 단축키 지정 (2) | 2023.10.01 |
---|---|
[백준, 파이썬, 14405번] 피카츄 (2) | 2023.10.01 |
[백준, 파이썬, 24479번] 알고리즘 수업 - 깊이 우선 탐색 1 (0) | 2023.09.30 |
[백준, 파이썬, 1284번] 집 주소 (0) | 2023.09.29 |
[백준, 파이썬, 15652번] N과 M (4) (0) | 2023.09.25 |