소 친구 방문하기
면접 대비시간 제한1초메모리 제한128 MB
정점 N개인 트리에서 서로 인접한 두 정점을 함께 고르지 않으면서 최대로 고를 수 있는 정점 수를 구한다.
문제
여러 주 동안 열심히 일한 끝에 베시는 드디어 휴가를 얻었습니다! 무리에서 가장 사교적인 소인 베시는 번부터 번까지 () 번호가 매겨진 마리의 소 친구들을 방문하고 싶어 합니다.
소들은 특이한 도로망을 만들어 두었습니다. 정확히 개의 도로가 있으며, 각 도로는 두 소 과 (, , )를 연결합니다. 그리고 임의의 두 소 사이에는 도로로 이루어진 경로가 유일하게 존재합니다. 즉, 도로망은 트리 구조입니다.
농부 존은 베시가 빨리 농장으로 돌아오기를 바랍니다. 그래서 그는 두 소가 도로로 직접 연결되어 있으면 둘 다 방문해서는 안 된다고 지시했습니다. 물론 베시는 휴가를 최대한 길게 보내고 싶으므로, 방문할 수 있는 소의 최대 수를 구하려고 합니다.
입력
- 첫째 줄: 정수 하나가 주어집니다.
- 둘째 줄부터 번째 줄까지: 각 줄에는 하나의 도로를 나타내는 두 정수 과 가 공백으로 구분되어 주어집니다.
출력
- 첫째 줄: 베시가 방문할 수 있는 소의 최대 수를 나타내는 정수 하나를 출력합니다.
힌트
베시는 7마리의 소를 알고 있습니다. 소 6과 2가 도로로 직접 연결되어 있고, 소 3과 4, 소 2와 3 등도 마찬가지입니다. 아래 그림은 소들을 잇는 도로를 나타냅니다.
1--2--3--4
|
5--6--7
베시는 네 마리의 소를 방문할 수 있습니다. 가장 좋은 조합은 윗줄에서 두 마리, 아랫줄에서 두 마리를 방문하는 것입니다. 소 6을 방문하면 소 5와 7을 방문할 수 없으므로, 소 5와 7을 방문합니다. 윗줄에서는 {1, 3}, {1, 4}, {2, 4} 중 하나를 방문할 수 있습니다.