Coding Test/알고리즘 이론

구간 트리 (Interval Trees) - leetcode (11)

hyunkookim 2025. 1. 11. 21:15

구간 트리 관련 문제는 주로 세그먼트 트리, Fenwick 트리, 또는 이진 탐색 트리를 활용합니다.

Easy:

  1. Merge Intervals (LeetCode 56)
    설명: 주어진 구간을 병합합니다.
    핵심 개념: 정렬과 병합.
  2. Insert Interval (LeetCode 57)
    설명: 주어진 구간 리스트에 새로운 구간을 삽입합니다.
    핵심 개념: 이진 탐색과 병합.
  3. Non-overlapping Intervals (LeetCode 435)
    설명: 겹치지 않는 구간을 만들기 위해 제거해야 할 최소 구간 개수를 찾습니다.
    핵심 개념: 정렬과 그리디.

Medium:

  1. Range Sum Query 2D - Immutable (LeetCode 304)
    설명: 2D 행렬에서 주어진 범위의 합을 계산합니다.
    핵심 개념: 구간 합 배열.
  2. Interval List Intersections (LeetCode 986)
    설명: 두 구간 리스트의 교집합을 찾습니다.
    핵심 개념: 투 포인터.
  3. Range Module (LeetCode 715)
    설명: 숫자 범위의 추가, 제거, 조회를 처리합니다.
    핵심 개념: 세그먼트 트리.
  4. My Calendar II (LeetCode 731)
    설명: 일정에서 이중 예약을 처리합니다.
    핵심 개념: 구간 트리와 스위핑.
  5. Count of Range Sum (LeetCode 327)
    설명: 주어진 범위에 속하는 합을 가지는 부분 배열의 개수를 찾습니다.
    핵심 개념: 세그먼트 트리 또는 병합 정렬.
  6. Maximum Number of Events That Can Be Attended (LeetCode 1353)
    설명: 최대한 많은 이벤트를 참석할 수 있는 방법을 찾습니다.
    핵심 개념: 정렬과 우선순위 큐.
  7. Number of Airplane in the Sky (LintCode 391)
    설명: 특정 시간에 하늘에 있는 항공기의 최대 수를 찾습니다.
    핵심 개념: 스위핑.
  8. Employee Free Time (LeetCode 759)
    설명: 직원들의 자유 시간을 찾습니다.
    핵심 개념: 구간 병합.