1058 친구
2019. 7. 10. 09:44ㆍ알고리즘/백준
지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람이 친구이거나, A와 친구이고, B와 친구인 C가 존재해야 된다. 여기서 가장 유명한 사람은 2-친구의 수가 가장 많은 사람이다. 가장 유명한 사람의 2-친구의 수를 출력하는 프로그램을 작성하시오.
처음에 문제를 잘못 이해했는데, 결국엔 1-친구와 2-친구의 합을 구하는 것이다
A - C - B가 친구 관계라면 A는 B, C를 2-친구를, B는 A, C를 2-친구 관계를 가지게 된다. 결국 하나의 정점에서 거리가 2인 정점까지의 갯수를 세면 된다. 따라서 BFS 혹은 DFS로 탐색을 통해서 해결할 수 있다
문제: https://www.acmicpc.net/problem/1058
깃허브주소: https://github.com/surinoel/boj/blob/master/1058.cpp
'알고리즘 > 백준' 카테고리의 다른 글
12761 돌다리 (0) | 2019.07.11 |
---|---|
5014 스타트링크 (0) | 2019.07.10 |
1068 트리 (0) | 2019.07.09 |
1517 버블 소트 (0) | 2019.07.08 |
1761 정점들의 거리 (0) | 2019.07.08 |