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