[LeetCode] 435. Non-overlapping Intervals

Chobby·2026년 2월 24일

LeetCode

목록 보기
1003/1023

😎풀이

  1. 종료 시간을 기준으로 오름차 순 정렬
  2. 현재 요소의 시작 시간이 이전 요소의 종료 시간 이전이라면, 두 구간이 중복되므로 하나 제거
  3. 구간이 겹치지 않게 하는데 필요한 최소 제거 수 반환
function eraseOverlapIntervals(intervals: number[][]): number {
    const sorted = intervals.toSorted(([aStart, aEnd], [bStart, bEnd]) => aEnd - bEnd)
    let erase = 0
    let lastEnd = -Infinity
    for(const [start, end] of sorted) {
        if(start < lastEnd) erase++
        else lastEnd = end
    }
    return erase
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글