Agorithm/백준 알고리즘
백준 알고리즘 2644번 촌수계산(python)
kimjinho1
2021. 3. 11. 11:18
728x90
반응형
기본적인 DFS & BFS 문제이다.
DFS 풀이
import sys
sys.setrecursionlimit(300000)
def dfs(node):
for n in graph[node]:
if check[n] == 0:
check[n] = check[node]+1
dfs(n)
n = int(input())
graph = [[] for _ in range(n+1)]
s, e = map(int, input().split())
for _ in range(int(input())):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
check = [0]*(n+1)
dfs(s)
print(check[e] if check[e] > 0 else -1)
BFS 풀이
from collections import deque
def bfs(node):
queue = deque()
queue.append(node)
while queue:
node = queue.popleft()
for n in graph[node]:
if check[n] == 0:
check[n] = check[node]+1
queue.append(n)
n = int(input())
graph = [[] for _ in range(n+1)]
s, e = map(int, input().split())
for _ in range(int(input())):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
check = [0]*(n+1)
bfs(s)
print(check[e] if check[e] > 0 else -1)
728x90
반응형