-
https://www.acmicpc.net/problem/2644
2644번: 촌수계산
사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어
www.acmicpc.net
해당 문제는 사람의 수가 주어지고 연결 정보가 주어질 때 두 사람에 대해서
몇 번 만에 갈 수 있는지 구하는 문제다.
bfs 혹은 dfs로 풀면 될 거 같았는데 플로이드 와샬이 더 쉬울 거 같아서 플로이드를 이용해 해결했다.
입력 처리를 다해주고 map를 선언해서 자기 자신으로 가는 걸 제외하곤
max 값으로 초기화해주고, 이후 연결 정보들을 모두 1로 갱신한 뒤
플로이드 와샬알고리즘을 적용하고 확인하려는 두 사람의 map 값을 통해서
-1 혹은 이동 횟수를 출력해 준다.
728x90'알고리즘' 카테고리의 다른 글
Baekjoon 1717 집합의 표현 JAVA (0) 2021.11.14 댓글