PS/Algorithms
[Java] TreeSet 유용한 기능
CalicoCat22
2022. 6. 10. 18:06
https://coding-factory.tistory.com/555
[Java] 자바 TreeSet 사용법 & 예제 총정리
TreeSet이란? JDK 1.2부터 제공되고 있는 TreeSet은 HashSet과 마찬가지로 Set 인터페이스를 구현한 클래스로써 객체를 중복해서 저장할 수 없고 저장 순서가 유지되지 않는다는 Set의 성질을 그대로 가
coding-factory.tistory.com
제 6회 천하제일 코딩대회에서 다음의 조건에 맞는 자료구조를 사용해야했다.
1. 크기에 따라 정렬되어야함
2. 특정 수에 위, 아래로 가까운 수가 무엇인지 찾아야함
3. 자유롭게 add 가능해야함
원래 2번은 이분탐색을 하던가 할텐데
1, 3을 만족하려면 들어올 때마다 정렬해줘야 하고
그러면 LinkedList나 PriortityQueue를 써줘야할텐데 그러면 2를 수행하면 시간이 엄청 걸릴것이였다.
그래서 TreeSet에서 잘 몰랐던 함수를 여럿 사용했다.
얼마 전에 전공에서 배우기도 한 RBT...의 특성 덕분에 아래와 같은 기능들이 있더라.
TreeSet<Integer> set = new TreeSet<>();
set.first();
///최소값 반환
set.last();
///최대값 반환
set.higher(k);
///k보다 큰 원소 중 가장 작은 값 반환 (없으면 null)
set.lower(k);
///k보다 작은 원소 중 가장 큰 값 반환 (없으면 null)