Problem From.
https://leetcode.com/problems/non-overlapping-intervals/
오늘 문제는 주어진 intervals 에서 범위가 겹치지 않게 하기 위해서 제거해야할 원소의 갯수를 반환하는 문제였다.
이 문제는 먼저 intervals 의 원소들을 첫번째 원소를 기준으로 오름차순으로 나열한뒤에, 처음부터 검사해나가면서, 범위가 겹치는 원소들이 몇개 있는지 세어서 cnt 를 반환해주면 되었다.
class Solution {
fun eraseOverlapIntervals(intervals: Array<IntArray>): Int {
if (intervals.isEmpty()) return 0
intervals.sortWith(compareBy({it.first()}, {it.last()}))
var count = 0
var temp = intervals.first().last()
for (i in 1 .. intervals.lastIndex) {
if (intervals[i].first() >= temp) {
temp = intervals[i].last()
} else {
count++
temp = minOf(intervals[i].last(), temp)
}
}
return count
}
}