2025-08-15

오늘 배운 것

자료구조

  • 성적조회하기 문제를 해결할 때 TreeMap 자료구조를 통해 구현하면 시간 복잡도를 감소 시킬 수 있었다.
  • TreeMap과 TreeSet 모두 정렬된 자료구조를 제공하고 둘다 내부적으로 레드 블랙 트리 기반으로 구현되어 있다.
    • 따라서 O(logN) 시간 복잡도로 탐색, 삽입, 삭제가 가능핟.
  • 데이터 조회, 삽입, 삭제가 빈번하게 사용되는 경우 해당 자료구조의 사용을 고려해봐야한다.

TreeMap

  • 개념
    • Key-Value 쌍을 저장하는 Map 인터페이스 구현체
    • 키를 기준으로 오름차순 정렬 (기본: Comparable 기준, 또는 Comparator 지정 가능)
    • Null 키는 허용하지 않음, 값은 null 가능
  • 주요 특징
    • 자동 정렬: 삽입할 때마다 키 순서대로 정렬됨
    • 범위 검색: subMap, headMap, tailMap 메서드로 부분 조회 가능
    • 탐색 메서드:
      • firstKey() / lastKey() : 가장 작은/큰 키
      • ceilingKey(k) : k 이상인 최소 키
      • floorKey(k) : k 이하인 최대 키

TreeSet

  • 개념
    • 중복 없는 데이터를 저장하는 Set 인터페이스 구현체
    • 원소를 정렬 상태로 유지
    • 내부적으로 TreeMap을 키만 사용해서 구현됨
    • null 저장 불가 (Comparator가 null을 허용하지 않음)
  • 주요 특징
    • 자동 정렬: 삽입 시 정렬 유지
    • 범위 검색: subSet, headSet, tailSet
    • 탐색 메서드:
      • first() / last() : 가장 작은/큰 값
      • ceiling(e) : e 이상 최소값
      • floor(e) : e 이하 최대값

results matching ""

    No results matching ""