[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)

 

 

 

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 14716 Python  (0) 2021.09.21
[Boj/백준] 2667 Python  (0) 2021.09.21
[Boj/백준] 21773 Python  (0) 2021.09.18
[Boj/백준] 22252 Python  (0) 2021.09.17
[Boj/백준] 13975 Python  (0) 2021.09.16