Skip to content

Commit 3551c6b

Browse files
committed
add insert interval solution
1 parent 0948a7c commit 3551c6b

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

insert-interval/Tessa1217.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
4+
class Solution {
5+
6+
// 시간, 공간복잡도: O(n)
7+
public int[][] insert(int[][] intervals, int[] newInterval) {
8+
9+
// 병합된 interval 담는 list
10+
List<int[]> modifyIntervals = new ArrayList<>();
11+
12+
int idx = 0;
13+
14+
// 병합 이전 구간
15+
while (idx < intervals.length && intervals[idx][1] < newInterval[0]) {
16+
modifyIntervals.add(intervals[idx]);
17+
idx++;
18+
}
19+
20+
// 병합이 필요한 구간 (newInterval과 겹치는 구간)
21+
while (idx < intervals.length && intervals[idx][0] <= newInterval[1]) {
22+
newInterval[0] = Math.min(intervals[idx][0], newInterval[0]);
23+
newInterval[1] = Math.max(intervals[idx][1], newInterval[1]);
24+
idx++;
25+
}
26+
27+
// 최종 병합된 새로운 interval add
28+
modifyIntervals.add(newInterval);
29+
30+
// 병합 이후 구간
31+
while (idx < intervals.length) {
32+
modifyIntervals.add(intervals[idx]);
33+
idx++;
34+
}
35+
36+
return modifyIntervals.toArray(new int[modifyIntervals.size()][2]);
37+
}
38+
}
39+

0 commit comments

Comments
 (0)