반응형
문제
https://www.acmicpc.net/problem/2644
🐍파이썬
import sys
n = int(sys.stdin.readline())
a, b = map(int, sys.stdin.readline().split())
m = int(sys.stdin.readline())
chon = [[] for _ in range(n+1)]
for _ in range(1, m+1):
c, d = map(int, sys.stdin.readline().split())
chon[c].append(d)
chon[d].append(c)
visited = [-1 for _ in range(n+1)] #친척관계가 없는 경우 -1을 출력하기 위해 -1로 초기화
visited[a] = 0 #시작
#DFS
def dfs(start):
for i in chon[start]: #시작노드와 연결된 모든 노드에 대해
if visited[i] == -1: #방문한 적 없는 노드인 경우
visited[i] = visited[start] + 1 #촌수+1
dfs(i) #깊이우선탐색
#BFS
def bfs(start):
queue = []
queue.append(start) #시작노드 삽입
while queue: #큐가 빌때까지 반복
v = queue.pop(0) #큐의 가장 처음 노드를 꺼내기
for i in chon[v]: #해당 노드와 연결된 모든 노드에 대해
if visited[i] == -1: #방문한 적 없는 노드인 경우
visited[i] = visited[v] + 1 #촌수+1
queue.append(i) #큐에 노드를 추가
dfs(a)
# bfs(a)
print(visited[b]) #end 노드의 값을 프린트해 촌수를 출력
반응형
'Problem Solving > 백준' 카테고리의 다른 글
[백준|파이썬] 6186: Best Grass (실버5) (0) | 2023.04.10 |
---|---|
[백준|파이썬] 16173: 점프왕 쩰리 (Small) (실버4) (0) | 2023.04.09 |
[백준|파이썬] 1012: 유기농 배추 (실버2) (0) | 2023.04.08 |
[백준|파이썬] 2178: 미로 탐색 (실버1) (0) | 2023.04.06 |
[백준|파이썬] 2606: 바이러스 (실버3) (0) | 2023.04.05 |
[백준|파이썬] 1260: DFS와 BFS (실버2) (0) | 2023.04.05 |