File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed
non-overlapping-intervals Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change 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+
You can’t perform that action at this time.
0 commit comments