알고리즘/dfs,bfs
[파이썬🐍] 백준 2644 : 촌수계산
코딩개미뚠뚠
2021. 4. 11. 18:54
반응형
생각이 꼬여서 푸는 데 좀 걸렸다ㅜㅜ
from collections import deque
n = int(input())
a, b = map(int, input().split())
m = int(input())
matrix = [[] for _ in range(n + 1)]
visited = [False] * (n + 1)
for _ in range(m):
x, y = map(int, input().split())
matrix[x].append(y)
matrix[y].append(x)
def bfs(v, target):
count = 0
q = deque([[v, count]])
while q:
value = q.popleft()
v = value[0]
count = value[1]
if v == target:
return count
if not visited[v]:
count += 1
visited[v] = True
for i in matrix[v]:
if not visited[i]:
q.append([i, count])
return -1
print(bfs(a, b))
내가 생각하는 코드의 핵심!↓
if not visited[v]:
count += 1
visited[v] = True
for i in matrix[v]:
if not visited[i]:
q.append([i, count])
이 부분에서 count+=1 이 코드를 맨 아래에다가 넣었는데 이럼 안된다
연결 되어 있는 부분 전부다 계산하기 때문!
반응형