Skip to content

Commit 97cade6

Browse files
committed
insert-interval solution (ts)
1 parent 0cac923 commit 97cade6

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

insert-interval/hi-rachel.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
function insert(intervals: number[][], newInterval: number[]): number[][] {
2+
const res: number[][] = [];
3+
let i = 0;
4+
const n = intervals.length;
5+
6+
// 1. newInterval보다 왼쪽에 있는 interval은 그대로 추가
7+
while (i < n && intervals[i][1] < newInterval[0]) {
8+
res.push(intervals[i]);
9+
i++;
10+
}
11+
// 2. 겹치는 구간 병합
12+
while (i < n && intervals[i][0] <= newInterval[1]) {
13+
newInterval[0] = Math.min(intervals[i][0], newInterval[0]);
14+
newInterval[1] = Math.max(intervals[i][1], newInterval[1]);
15+
i++;
16+
}
17+
res.push(newInterval);
18+
19+
// 3. 나머지 오른쪽 구간 추가
20+
while (i < n) {
21+
res.push(intervals[i]);
22+
i++;
23+
}
24+
return res;
25+
}

0 commit comments

Comments
 (0)