Skip to content

Commit 33f248e

Browse files
committed
solve: merge intervals
1 parent 79e104a commit 33f248e

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

โ€Žmerge-intervals/wogha95.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* ์ •๋ ฌํ•œ ๋‹ค์Œ, ๋งˆ์ง€๋ง‰ ์›์†Œ์˜ end๊ฐ’์„ ๊ฐ€์ง€๊ณ  mergeํ• ์ง€ ์›์†Œ ์ถ”๊ฐ€ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
3+
*
4+
* TC: O(N * logN)
5+
* ์ •๋ ฌ์— ์˜ํ•ด N * logN ๋ณต์žก๋„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.
6+
*
7+
* SC: O(1)
8+
* N: intervals.length
9+
*/
10+
11+
/**
12+
* @param {number[][]} intervals
13+
* @return {number[][]}
14+
*/
15+
var merge = function (intervals) {
16+
intervals.sort((a, b) => a[0] - b[0]);
17+
18+
return intervals.reduce((result, current) => {
19+
if (result.length === 0) {
20+
result.push(current);
21+
return result;
22+
}
23+
24+
const previous = result[result.length - 1];
25+
if (previous[1] >= current[0]) {
26+
result[result.length - 1][1] = Math.max(current[1], previous[1]);
27+
} else {
28+
result.push(current);
29+
}
30+
return result;
31+
}, []);
32+
};

0 commit comments

Comments
ย (0)