PS/Binary Search Tree 3

백준 1539번: 이진 검색 트리 (JAVA)

https://www.acmicpc.net/problem/1539 1539번: 이진 검색 트리 P는 크기가 N인 배열이다. P에는 0보다 크거나 같고, N-1보다 작거나 같은 정수가 중복 없이 채워져 있다. 이진 검색 트리는 루트가 있는 이진 트리로, 각각의 노드에 정수 값이 저장되어 있는 트 www.acmicpc.net 문제 P는 크기가 N인 배열이다. P에는 0보다 크거나 같고, N-1보다 작거나 같은 정수가 중복 없이 채워져 있다. 이진 검색 트리는 루트가 있는 이진 트리로, 각각의 노드에 정수 값이 저장되어 있는 트리이다. 이진 검색 트리를 P배열을 이용해서 만드는 법은 다음과 같다. 일단 root를 만들고 거기에 P[0]의 값을 넣은 후에 다음과 같은 과정을 거친다. for (int i=1; i

백준 21944번: 문제 추천 시스템 Version 2 (JAVA)

https://www.acmicpc.net/problem/21944 21944번: 문제 추천 시스템 Version 2 recommend, recommend2, recommend3 명령이 주어질 때마다 문제 번호를 한 줄씩 출력한다. 주어지는 recommend, recommend2, recommend3 명령어의 총 개수는 최소 1개 이상이다. www.acmicpc.net 풀이 명령에는 총 5가지: 추천 3가지 / 추가 / 삭제가 있다. 내부의 모든 위치에 대해 정렬된 자료 구조가 필요해 보이므로, TreeSet을 사용하도록 한다. Tree 내부에 Problem이라는 class를 넣는다. Problem class는 난이도, 문제 번호, 알고리즘 종류를 변수로 가지며, 난이도에 대한 내림차순 이후 문제 번호에..

Binary Search Tree: JAVA에서의 활용을 위주로

(https://baaaaaaaaaaaaaaaaaaaaaaarkingdog.tistory.com/1013의 내용을 위주로, JAVA에서의 활용을 보완하여 작성하였다.) 정의 이진 트리: 자식 노드가 2개 이하인 트리 root, parent, child, leaf, subtree 등...의 용어: 모르면 공부하고, 알면 한 번 스스로 정의를 말해보면서 복습하자. 이진 검색 트리: 이진 트리이면서 모든 노드에 대해, 해당 노드의 왼쪽 서브트리의 모든 노드는 해당 노드보다 작고, 해당 노드의 오른쪽 서브트리의 모든 노드는 해당 노드보다 큰 트리 성질 insert, search, update, delete가 모두 O(logN): 다만, 좀 무거운 연산이다. 원소가 크기 순으로 정렬되어 있음. → HashMap,..