Programming/백준
[백준 24444][BFS][파이썬] 알고리즘 수업 - 너비 우선 탐색 1 (정점 방문 순서 구현)
문제
https://www.acmicpc.net/problem/24444
제출
import sys
#sys.stdin=open("input.txt", "rt")
from collections import deque
N,M,R = map(int,sys.stdin.readline().split())
# graph
graph=[[] for _ in range(N+1)]
#입력받는 간선 정보 그래프화
for i in range(M):
tmpL=list(map(int,sys.stdin.readline().split()))
graph[tmpL[0]].append(tmpL[1])
graph[tmpL[1]].append(tmpL[0])
# 정렬
for i in range(N+1):
graph[i].sort()
#BFS 함수
def bfs(graph,R,visited):
queue=deque([R])
visited[R]=1 #첫번째 방문 정점
count=2 #두번째 방문 정점
while queue:
R=queue.popleft()
for i in graph[R]:
if visited[i]==0:
queue.append(i)
visited[i]=count
count+=1 # n+1 번째 방문 정점
#정점 리스트
visited=[0]*(N+1)
bfs(graph,R,visited)
#출력
for i in visited[1::]:
print(i)
'Programming > 백준' 카테고리의 다른 글
[백준 11004][정렬][파이썬] K번째 수 구하기 (0) | 2022.08.05 |
---|---|
[백준 2579][DP][파이썬] 계단오르기 - 풀이 및 답안 (0) | 2022.06.05 |
[백준 1912][DP][파이썬] 연속합 (feat. 카데인(Kadane) 알고리즘) (0) | 2022.06.03 |
[백준 1874][Stack][파이썬] 스택 수열 - 풀이 및 답안 (0) | 2022.05.22 |
[백준 24446][BFS][파이썬] 알고리즘 수업 - 너비 우선 탐색 3 (정점 방문 깊이 구현) (0) | 2022.04.17 |
댓글