π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[BAEKJOON python] 2644_μ΄μκ³μ° λ³Έλ¬Έ
728x90
λ°μν
μ°λ¦¬ λλΌλ κ°μ‘± νΉμ μΉμ²λ€ μ¬μ΄μ κ΄κ³λ₯Ό μ΄μλΌλ λ¨μλ‘ νννλ λ νΉν λ¬Ένλ₯Ό κ°μ§κ³ μλ€.
μ΄μλ κΈ°λ³Έμ μΌλ‘ λΆλͺ¨μ μμ μ¬μ΄λ₯Ό 1μ΄μΌλ‘ μ μνκ³ μ΄λ‘λΆν° μ¬λλ€ κ°μ μ΄μλ₯Ό κ³μ°νλ€.
μλ₯Ό λ€λ©΄ λμ μλ²μ§, μλ²μ§μ ν μλ²μ§λ κ°κ° 1μ΄μΌλ‘ λμ ν μλ²μ§λ 2μ΄μ΄ λκ³ , μλ²μ§ νμ λ€κ³Ό ν μλ²μ§λ 1μ΄, λμ μλ²μ§ νμ λ€κ³Όλ 3μ΄μ΄ λλ€.
μ¬λ¬ μ¬λλ€μ λν λΆλͺ¨ μμλ€ κ°μ κ΄κ³κ° μ£Όμ΄μ‘μ λ, μ£Όμ΄μ§ λ μ¬λμ μ΄μλ₯Ό κ³μ°νλ νλ‘κ·Έλ¨μ μμ±
μ¬λλ€μ 1, 2, 3, …, n (1 ≤ n ≤ 100)μ μ°μλ λ²νΈλ‘ κ°κ° νμλλ€.
μ λ ₯ νμΌμ 첫째 μ€μλ μ 체 μ¬λμ μ nμ΄ μ£Όμ΄μ§κ³ ,
λμ§Έ μ€μλ μ΄μλ₯Ό κ³μ°ν΄μΌ νλ μλ‘ λ€λ₯Έ λ μ¬λμ λ²νΈκ° μ£Όμ΄μ§λ€.
μ μ§Έ μ€μλ λΆλͺ¨ μμλ€ κ°μ κ΄κ³μ κ°μ mμ΄ μ£Όμ΄μ§λ€.
λ·μ§Έ μ€λΆν°λ λΆλͺ¨ μμκ°μ κ΄κ³λ₯Ό λνλ΄λ λ λ²νΈ x,yκ° κ° μ€μ λμ¨λ€. μ΄λ μμ λμ€λ λ²νΈ xλ λ€μ λμ€λ μ μ yμ λΆλͺ¨ λ²νΈλ₯Ό λνλΈλ€.
κ° μ¬λμ λΆλͺ¨λ μ΅λ ν λͺ λ§ μ£Όμ΄μ§λ€.
μ λ ₯μμ μꡬν λ μ¬λμ μ΄μλ₯Ό λνλ΄λ μ μλ₯Ό μΆλ ₯
μ΄λ€ κ²½μ°μλ λ μ¬λμ μΉμ² κ΄κ³κ° μ ν μμ΄ μ΄μλ₯Ό κ³μ°ν μ μμ λκ° μλ€. μ΄λμλ -1μ μΆλ ₯
π 1) DFS
# 1) dfs
n = int(input())
a, b = map(int, input().split())
t = int(input())
graph = [[] for i in range(n+1)]
visited = [0] * (n+1)
for i in range(t) :
p, q = map(int, input().split())
graph[p].append(q)
graph[q].append(p)
def dfs(a) :
for i in graph[a] :
if not visited[i] :
visited[i] = visited[a] + 1
dfs(i)
dfs(a)
if visited[b] > 0 :
print(visited[b])
else :
print(-1)
# # input
# 9
# 7 3
# 7
# 1 2
# 1 3
# 2 7
# 2 8
# 2 9
# 4 5
# 4 6
# # result
# 3
π 2) BFS
# 2) bfs
from collections import deque
n = int(input())
p, q = map(int, input().split())
t = int(input())
graph = [[] for _ in range(n+1)]
visited = [-1] * (n+1)
for i in range(t) :
x, y = map(int, input().split())
graph[x].append(y)
graph[y].append(x)
def bfs() :
queue = deque([p])
visited[p] = 0
while queue :
result = queue.popleft()
for i in graph[result] :
if visited[i] == -1 :
visited[i] = visited[result] + 1
queue.append(i)
bfs()
if visited[q] == -1 : # p λ μ°κ²° X
print(-1)
else :
print(visited[q])
# input
# 9
# 7 3
# 7
# 1 2
# 1 3
# 2 7
# 2 8
# 2 9
# 4 5
# 4 6
# result
# 3
728x90
λ°μν
'π¦₯ μ½ν > BAEKJOON' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON python] 9205_λ§₯μ£Ό λ§μλ©΄μ κ±Έμ΄κ°κΈ° (0) | 2022.10.08 |
---|---|
[BAEKJOON python] 2468_μμ μμ (1) | 2022.10.08 |
[BAEKJOON python] 2667_λ¨μ§λ²νΈλΆμ΄κΈ° (0) | 2022.10.07 |
[BAEKJOON python] 2606_λ°μ΄λ¬μ€ (0) | 2022.10.06 |
[BAEKJOON python] 2178_λ―Έλ‘νμ (0) | 2022.10.06 |
Comments