tree 5

[12월 1주차] 알고리즘 스터디

1. 단절점과 단절선 - 실버 1 출처 - https://www.acmicpc.net/problem/14675 MySol) 트리 1380ms public class Test1 { static ArrayList[] lists; // 리스트로 이뤄진 배열 public static void solution(int t, int k) { if (t == 2) { System.out.println("yes"); return; } if (lists[k].size() >= 2) { // k번 노드와 연결된 노드의 개수 System.out.println("yes"); return; } System.out.println("no"); } public static void main(String[] args) throws IO..

Chapter 07. Recursive, Tree, Graph (DFS, BFS 기초)

1. 재귀함수 (스택 프레임) public class Main { public void DFS(int n){ if(n == 0) return; else{ System.out.println(n); DFS(n-1); } } public static void main(String[] args){ Main T = new Main(); T.DFS(5); return ; } } Note) - 실행 결과: 5 4 3 2 1 츨력 2. 이진수 출력 (재귀) import java.util.Scanner; public class Main { public void DFS(int n){ if(n == 0) return; else{ System.out.print(n + " "); DFS(n / 2); } } public sta..

Chapter 04. HashMap, TreeSet (해쉬, 정렬지원 Set)

1. 학급 회장 (Hash) import java.util.*; public class Main { public char solution(int n, String s){ char answer = ' '; HashMap map = new HashMap(); for(char x : s.toCharArray()){ map.put(x, map.getOrDefault(x, 0) + 1); // x의 value가 있으면 가져오고 없으면 0리턴 } int max = Integer.MIN_VALUE; for(char key : map.keySet() ){ // System.out.println(x + " " + map.get(x));// 각각의 key를 출력 if(map.get(key) > max){ max = map..

Part 09 Tree

- tree는 규칙이 없던 그래프와 다르게 규칙이 있다. 1. Bynary tree - Bynary tree: child는 두 개만 - 왼쪽부터 빠짐없이 채우면 => Complete Binary Tree - 빈 칸 없이 다 채우면 => Perfect Binary Tree 2. Tree읽는 방법 1) DFS - In Order Travel: left -> root -> right - Pre Order Travle: root -> left -> right - Post Order Travel: left -> right -> root 2) BFS - Level Order Travel 3. Heap - root에는 항상 최솟값이 있어야한다. => "Min heap' - root에는 항상 최댓값이 있어야한다. =>..

트리, 이진 탐색 트리, 레드-블랙 트리

1. 트리 - 널리 이용되는 자료구조 중 하나 - 나무의 "계층적" 구조를 표현한다. Def) 노트(node): 실제로 저장하는 데이터 Def) 루트(root): 최상위에 위치한 데이터 Def) 리프(leaf): 마지막에 위치한 데이터들 - 부모와 자식 관계(부모는 언제나 하나, 자식은 없거나 여러개 가능) - 높이: 어떤 노드->리프 경로의 최대 길이 -> 부모 기준으로 아래 3개 있으면 높이가 3 - 깊이: 어떤 노드->루트 경로의 길이 -> 자식기준으로 위에 3개 있으면 깊이가 3 - 하위 트리(subtree): 어떤 노드 아래의 모든 것을 포함하는 트리 2. 트리의 용도 - 계층적 데이터를 표현 - 검색트리를 통해 검색 알고리즘 구현 가능 Ex) 트리의 저장법 public class Node{ p..