문제
- SWEA 5102 노드의 거리 D2
- python
- 문제링크
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 코드
def bfs(v):
# 노드 번호만 넣는 큐
q = []
q.append(v)
# 방문표시
visited[v] = 1
while q:
# 방향이 따로 없으니 이어져 있는 노드 모두 탐색
# 첫번째 원소부터 탐색
v = q.pop(0)
for e in range(E):
# 앞 먼저 탐색
# 탐색하는 노드와 그에 이어져 있는 간선을 방문하지 않은 경우
if node[e][0] == v and visited[node[e][1]] == 0:
# 다음 탐색을 위해 v 와 이어져 있는 간선 q에 append
q.append(node[e][1])
# 다음 노드 방문 표시
visited[node[e][1]] = 1
distance[node[e][1]] = distance[v] + 1
if node[e][1] == v and visited[node[e][0]] == 0:
# 다음 탐색을 위해 v 와 이어져 있는 간선 q에 append
q.append(node[e][0])
visited[node[e][0]] = 1
distance[node[e][0]] = distance[v] + 1
T = int(input())
for tc in range(T):
V, E = map(int, input().split())
node = [list(map(int, input().split())) for _ in range(E)]
S, G = map(int, input().split())
visited = [0] * (V+1)
distance = [0] * (V+1)
bfs(S)
print("#{} {}".format(tc+1, distance[G]))
'개발공부 > algorithm' 카테고리의 다른 글
[백준][python] 1003.피보나치 함수 - 동적계획법 (0) | 2021.03.07 |
---|---|
[SWEA][python] 4875.미로 - DFS (0) | 2021.03.04 |
[SWEA] [python] 1231.중위순회 - tree (0) | 2021.03.03 |
[SWEA] [python] 5174, 5176, 5177, 5178 - Tree (0) | 2021.03.03 |
[SWEA][python] 1219.길찾기 - DFS (0) | 2021.03.02 |