dfs 2

[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 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