File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[][] } intervals
3+ * @param {number[] } newInterval
4+ * @return {number[][] }
5+ */
6+ const insert = function ( intervals , newInterval ) {
7+ const merged = [ ] ;
8+ let i = 0 ;
9+
10+ // 겹치지 않는 앞부분 push
11+ while ( i < intervals . length && intervals [ i ] [ 1 ] < newInterval [ 0 ] ) {
12+ merged . push ( intervals [ i ] ) ;
13+ i ++ ;
14+ }
15+
16+ // 겹치는 부분 처리
17+ while ( i < intervals . length && intervals [ i ] [ 0 ] <= newInterval [ 1 ] ) {
18+ newInterval [ 0 ] = Math . min ( newInterval [ 0 ] , intervals [ i ] [ 0 ] ) ;
19+ newInterval [ 1 ] = Math . max ( newInterval [ 1 ] , intervals [ i ] [ 1 ] ) ;
20+ i ++ ;
21+ }
22+ merged . push ( newInterval ) ;
23+
24+ // 겹치지 않는 뒷부분 push
25+ while ( i < intervals . length ) {
26+ merged . push ( intervals [ i ] ) ;
27+ i ++ ;
28+ }
29+
30+ return merged ;
31+ } ;
32+
33+ // 시간복잡도: O(n)
34+ // 공간복잡도: O(n) (반환할 배열)
You can’t perform that action at this time.
0 commit comments