1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# 2644 촌수계산
# BFS
# 파이썬 56 ms
N = int(input()) # 사람 수
A, B = map(int, input().split()) # 타겟
T = int(input()) # 관계 수
graph = [[]for i in range(N+1)] # 관계를 저장하기 위한 그래프
info = [0]*(N+1) # Start -> End로 걸리는 거리를 기록
for i in range(T): # 그래프 저장
P, C = map(int, input().split())
graph[P].append(C)
graph[C].append(P)
def bfs(start, end): # 시작부터 끝까지 탐색
queue = [start]
visited = []
while queue:
vtx = queue.pop(0)
visited.append(vtx)
if vtx==end:
break
for c in graph[vtx]:
if c not in visited:
info[c] = info[vtx] + 1
queue.append(c)
if info[end]==0:
print(-1)
else:
print(info[end])
bfs(A,B)
|
'프로그래밍' 카테고리의 다른 글
[백준 1697 숨바꼭질 ] 파이썬 (0) | 2020.02.27 |
---|---|
[백준 2468 안전 영역] 파이썬 풀이 (0) | 2020.02.27 |
[백준 7576 토마토 ] 파이썬 풀이 (0) | 2020.02.25 |
[백준 3184 파이썬 ] 양 (0) | 2020.02.25 |
[백준 7459 파이썬] 토마토 (0) | 2020.02.25 |