336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
트리의 지름을 구하는 문제
어느 지점에서 시작해도 가장 먼 노드가 시작노드가 되며, 이때 1-BFS 를 사용하고,
두번째, 시작노드를 구했다면, 2-BFS 를 사용하여 "트리의 지름" 을 구한다.
총 2번의 BFS를 사용하여 결과를 구할 수 있다.
먼저, 모든 입력을 받는다.
(1) 임의의 노드를 선택한다. (코드에선 1을 지정)
(2) (1)에 선택한 노드를 방문 표시한 후 Q에 넣는다.
(3) 1-BFS
1) Q에서 노드(here)를 꺼낸다.
2) 꺼낸 노드(here)와 연결되어 있고, 방문하지 않은 노드(there.first)를 방문한다.
3) 방문한 노드의 이동 비용을 update 한 후, 노드방문표시, Q에 넣는다.
4) Q에 넣는 노드가 도달비용이 최대라면 max_node , max_cost를 업데이트 한다.
(4) 2-BFS
(3) 의 과정을 완료하면, 시작노드를 구한 것이다. 시작노드부터 BFS를 하여 가장 먼 위치에 있는 노드와의 비용을 구한다.
(5) 비용을 출력한다.
'PSNote > Problem Solving' 카테고리의 다른 글
[BOJ-12852]1로만들기2 (0) | 2017.07.17 |
---|---|
[BOJ-1463]1로만들기 (0) | 2017.07.17 |
[BOJ-11653]소인수분해 (0) | 2017.07.17 |
[BOJ-14582]오늘도졌다 (0) | 2017.07.17 |
[BOJ-14581]팬들에게 둘러싸인 홍준 (0) | 2017.07.17 |