[Boj문제풀이]
[Boj/백준] 2644 Python
ki7348
2021. 9. 20. 14:17
문제출처: https://www.acmicpc.net/problem/2644
2644번: 촌수계산
사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어
www.acmicpc.net
1. 문제 접근 방식
dfs처럼 풀되 dfs 함수의 인자를 a, b, count로 두고
a의 인자를 재귀적으로 바꾸고 a==b가 성립하면 count값을 출력했다.
2. 내가 푼 코드
import sys
n = int(sys.stdin.readline())
a, b = map(int,sys.stdin.readline().split())
m = int(sys.stdin.readline())
def dfs(a, b, count):
visited[a] = True
if a == b:
print(count)
return
count+=1
for i in graph[a]:
if not visited[i]:
dfs(i, b, count)
graph=[[] for _ in range(n+1)]
visited = [False] * (n+1)
count = 0
for _ in range(m):
u, v = map(int, sys.stdin.readline().split())
graph[u].append(v)
graph[v].append(u)
dfs(a, b, count)
if visited[b] == False:
print(-1)