백준 알고리즘 2644. 촌수계산
2024. 3. 22. 13:53ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/2644
2644번: 촌수계산
사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어
www.acmicpc.net
전체 코드
전희경님 코드
import sys
# sys.setrecursionlimit(10**7)
# sys.stdin = open("sample_input.txt", "r")
# 전체 사람의 수 n
n = int(sys.stdin.readline())
# 촌수 계산을 하는 두 사람
p1, p2 = map(int, sys.stdin.readline().split())
# 부모 자식 간의 관계의 개수 m
m = int(sys.stdin.readline())
graph = [[] for _ in range(n+1)] # n번 인덱스의 부모가 담김
visited = [False for _ in range(n+1)]
for _ in range(m):
x, y = map(int, sys.stdin.readline().split())
graph[y].append(x)
graph[x].append(y)
# graph : [[], [2, 3], [1, 7, 8, 9], [1], [5, 6], [4], [4], [2], [2], [2]]
def dfs(node, count=0):
global answer
# print(node, count)
visited[node] = True
if node == p2:
answer = count
return
for g in graph[node]:
if not visited[g]:
# print(g)
dfs(g, count+1)
return answer
answer = 0
dfs(p1)
print(answer if answer > 0 else -1)
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 1916. 최소비용 구하기 (0) | 2024.03.25 |
---|---|
백준 알고리즘. 11724 연결 요소의 개수 (0) | 2024.03.22 |
백준 알고리즘 2294. 동전 2 (0) | 2024.03.22 |
백준 알고리즘 5557. 1학년 (0) | 2024.03.21 |
백준 알고리즘 1309. 동물원 (0) | 2024.03.21 |