728x90
[문제]
https://www.acmicpc.net/problem/2644
2644번: 촌수계산
사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어
www.acmicpc.net
[코드]
#S2_2644 촌수계산.py
#dfs
def dfs(v,depth):
global graph, visit
visit[v] = 1
if v == v2: #도착 노드에 도달한 경우
return depth
for i in range(1, n+1):
if graph[v][i] == 1 and not visit[i]:
result = dfs(i,depth+1)
if result != -1:
return result
return -1 #촌수가 존재하지 않는 경우
#main
n = int(input()) #전체 사람 수
v1, v2 = map(int,input().split()) #촌수를 계산해야 하는 사람
m = int(input()) #관계 개수
graph = [[0] * (n+1) for _ in range(n+1)]
visit = [0] * (n+1)
#관계 입력 받기
for i in range(m):
x, y = map(int,input().split()) #x가 y의 부모
graph[x][y] = 1
graph[y][x] = 1
result = dfs(v1,0)
print(result)
반응형
'🚩 Coding Test > Baekjoon' 카테고리의 다른 글
[BOJ][Python] 2581 소수 (0) | 2024.04.09 |
---|---|
[BOJ][Python] 1978 소수 찾기 (0) | 2024.04.09 |
[BOJ][Python] 2606 바이러스 (0) | 2024.04.08 |
[BOJ][Python] 1260 DFS와 BFS (0) | 2024.04.08 |
[BOJ][Python] 9506 약수들의 합 (0) | 2024.04.05 |