[백준 2664 ] 촌수계산 파이썬, dfs

김진만·2022년 11월 17일
0

코딩테스트

목록 보기
5/10

전형적인 dfs, bfs 문제입니다

총 n명의 사람이 있고, m개의 관계를 정의해주고, f1(구성원1),f2(구성원2)의 거리를 계산하는 문제입니다. f1과 f2가 같은 같은 군집 내에 있지 않고 떨어져 있다면 -1을 반환합니다.

def dfs(f1):
    for i in graph[f1]:
        if visited[i] == 0:
            visited[i] = visited[f1] + 1
            dfs(i)

n = int(input())
f1,f2=map(int,input().split())
m=int(input())
graph=[[]for _ in range(n+1)]
visited=[0]*(n+1)
for _ in range(m):
    a,b=map(int,input().split())
    graph[a].append(b)
    graph[b].append(a)
dfs(f1)
print(visited[f2] if visited[f2]>0 else -1)
profile
충분한 전기와 컴퓨터 한 대와 내 이 몸만 남아 있다면 지구를 재건할 수 있습니다.

0개의 댓글