본문 바로가기

트리2

[백준] 1967번 트리의 지름 JAVA (자바) 풀이 문제 1967번 (dfs)  :  트리(tree)는 사이클이 없는 무방향 그래프    트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재    어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것 :  이런 두 노드 사이의 경로의 길이를 트리의 지름    입력으로 루트가 있는 트리를 가중치가 있는 간선들로 줄 때, 트리의 지름을 구해라  :  아래와 같은 트리가 주어진다면 트리의 지름은 45    [입력] :  파일의 첫 번째 줄은 노드의 개수 n (1 ≤ n ≤ 10,000) :  둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보 (세 개의 정수)    (연결하는 두 노드 중 부모 노드의 번호, 자식 노드, 간선의 가중치)     간선에 대한 정보는 부.. 2024. 8. 6.
[백준] 1068번 트리 JAVA (자바) 풀이 문제 1068번 (dfs)  :  리프 노드 = 자식의 개수가 0인 노드    노드를 지우면 그 노드와 노드의 모든 자손이 트리에서 제거     남은 트리에서 리프 노드의 개수를 구하는 프로그램을 작성   예) 리프 노드의 개수는 3개  이때, 1번을 지우면, 다음과 같이 변한다. 회색으로 색칠된 노드가 트리에서 제거 이제 리프 노드의 개수는 1개   [입력] :  첫째 줄에 트리의 노드의 개수 N (N은 50보다 작거나 같은 자연수) :  둘째 줄에는 0번 ~ N-1번 노드까지 각 노드의 부모가 주어진다    (만약 부모가 없다면 -1) :  셋째 줄에는 지울 노드의 번호    [출력] :  첫째 줄에 주어진 노드를 지웠을 때, 남은 리프 노드의 개수를 출력    [과정]  탐색하자 → 브루트포스 / .. 2024. 8. 1.