Skip to content

Commit 30f2c0e

Browse files
committed
add: solve DaleStudy#279 Non-Overlapping Intervals with
1 parent 7f6029e commit 30f2c0e

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

non-overlapping-intervals/Yjason-K.ts

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* 주어진 interval 배열에서 구간이 서로 겹치지 않기 위해서 제거해야 하는 최소한의 interval 수 구하기.
3+
* @param {number[][]} intervals - interval 정보를 담는 2차원 배열 [start, end][]
4+
* @returns {number} - 제거한 interval 최소 개수
5+
*/
6+
function eraseOverlapIntervals(intervals: number[][]): number {
7+
// interval의 end 기준으로 정렬
8+
intervals.sort((a, b) => a[1] - b[1]);
9+
10+
// 제거해야 하는 interval 수
11+
let result = 0;
12+
// 비교할 기준 interval
13+
let prevInterval = intervals[0];
14+
15+
// 0 idx를 기준으로 하기 때문에 1번 idx부터 비교
16+
for(let i=1; i < intervals.length; i++) {
17+
// 이전 idx와 비교할 interval이 겹치는 경우
18+
if(intervals[i][0] < prevInterval[1]) {
19+
result++;
20+
} else {
21+
// 겹치치 않는경우 기준 interval 변경
22+
prevInterval = intervals[i];
23+
}
24+
}
25+
26+
27+
return result;
28+
}
29+

0 commit comments

Comments
 (0)