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