Tree 4

[JAVA]BOJ 9934, 완전 이진 트리

inoder로 들어온 완전이진트리를 트리의 모습.. 음 레벨 순회로 각 레벨마다 줄바꿈해서 출력하면 된다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;public class BOJ9934 { public static void getTree(int[] arr, int start, int end, int level, List> levels){ int middle; if(start > levels = new ArrayLi..

코딩가딩가 2024.09.22

[JAVA]BOJ 1967, 트리의 지름

어렵다.. 골드였구나 1. 트리를 만든다.2. dfs를 두 번 진행한다. 이렇게만 보면 간단해보이는데.. 구현하는게 어려웠다. 1. 트리를 만든다.ArrayList[] tree; // 선언// 트리 초기화tree = new ArrayList[n + 1];for(i=0;i();// 트리 만들기 -> 간선개수는 노드개수 -1for(i=1;i 이번 문제는 ArrayList로 트리를 구현한다. 트리를 초기화할때 i=1부터 했더니 자꾸 NullPointer가 발생해서 i=0으로 바꿨다. 바꿨더니 에러가 안나고 정답을 맞췄다.ArrayList에 tree[부모]에  '부모, 자식, 간선가중치'를 저장한다. 그리고 부모-자식이 연결됐다는건 자식-부모도 연결되어있다는 뜻이므로 tree[자식]에 '자식, 부모, 간선가중치..

코딩가딩가 2024.09.22

[JAVA]BOJ 1991, 트리 순회

트리를 구현하고 순회하는 단순한 문제이다. 트리를 구현할때.. 클래스가 3개 필요하다. 메인, node, binaryTree 1. node 클래스public class Node { char data; Node left; Node right; Node(char data){ this.data = data; }}단순하게 노드를 구현한다. 자기자신과 왼쪽노드, 오른쪽노드를 가진다.  2. BinaryTree 클래스import java.util.HashMap;public class BinaryTree { private Node root; // 루트 노드 private HashMap nodes; // 각 노드를 저장하는 맵, 간선 역할 public Binary..

코딩가딩가 2024.09.21

[JAVA]BOJ 11725, 트리의 부모 찾기

트리를 활용한 간단한 문제이다.트리에 대해 짧게 요약하고 넘어가자면 ..트리 : 순환이 없는 그래프트리종류 : 일반트리 이진트리 N-진트리 균형트리 힙.. 등이 있음 순회방법 : preorder, inorder, postorder, levelorer 등이 있음 dfs, bfs : 그래프와 트리에 사용할 수 있는 탐색 알고리즘          - dfs : preorder, inorder, postorder 방식으로 탐색 가능          - bfs : leveloder와 같음자바에서 트리를 구현할때는 리스트를 이용한다. 1. 리스트를 이용해 빈 노드를 가진 트리를 만든다.2. 노드에 간선을 추가한다.3. DFS 탐색(preorder)으로 부모를 찾는다.4. 부모를 출력한다. 1. 메인 -> 2. 노드..

코딩가딩가 2024.09.08