문제 입력 , 출력 solution 설명 >1. 특정 노드를 선택해서 가장 먼 거리에 있는 노드(B)를 찾는다. 찾은 노드(B) 에서 dfs로 가장 먼 거리에 있는 노드의 거리가 트리의 지름이된다. 해당 알고리즘의 증명 트리의 지름 증명 트리의 지름을 구하는 방법만 알면 dfs를 두번 돌리면 풀리는 간단한 문제
문제 입력 , 출력 solution 설명 키포인트 > 1. 이진트리가 아니다 자식 노드가 2개 이상일 경우도 생각해야함 일자로 길이를 했을경우가 자식노드 두개를 연결했을 경우 보다 더 길 수도 있다. DFS를 할 때 a -> b노드 의 가중치를 인자로 넣어준다. 다음 b의 자식노드를 돌아서 가장 긴 값을 받은 가중치 인자랑 더해서 return을 해준다. 만약 리프노드일 경우에는 받은 간선의 가중치 값만 return을 하게 된다. 그리고 자식노드가 2개 이상일 경우 두개를 이을 수 있는 모든 경우의 수를
문제 입력 , 출력 solution 설명 우선 간단한 ? DFS 문제이다. 리프 노드까지 내려가서 양이 몇마리가 올라오는지 체크를 하면 된다. 우선 리프노드까지 내려가서 양이면 부모노드에 올라가는 양을 return 해주고 양이 아닐경우에는 0 을 부모노드에 return 해준다. 해당 노드마다 자식노드에서 올라온 양이 몇마리인지 체크를 한다. 그리고 해당노드가 늑대이면 자식노드에서 올라온 양보다 늑대가 많으면 자신노드의 부모노드로 올라갈 양의 수를 0으로 return 해주고 양이 늑대보다 많으면 를 해줘서 부모노드