Skip to content

Commit 3a94426

Browse files
committed
add solution : 435. Non-overlapping Intervals
1 parent c8d0a39 commit 3a94426

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
*@link https://leetcode.com/problems/non-overlapping-intervals/description/
3+
*
4+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
5+
* - ์ตœ์†Œ ์‚ญ์ œ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธํ„ฐ๋ฒŒ ์ข…๋ฃŒ ์‹œ์ ์ด ๋น ๋ฅธ ๊ฑธ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
6+
* - ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ขํžˆ๊ธฐ ์œ„ํ•ด์„œ ์ด์ „ ์ธํ„ฐ๋ฒŒ ๋ฒ”์œ„์™€ ๋น„๊ต -> ์ด์ „ ์ธํ„ฐ๋ฒŒ ์ข…๋ฃŒ ์ง€์ ๋ณด๋‹ค ์‹œ์ž‘์ ์ด ๋น ๋ฅด๋ฉด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๊ฒน์น˜๋‹ˆ๊นŒ ์‚ญ์ œ ์นด์šดํŠธ ์ฆ๊ฐ€
7+
* - ๊ฒน์น˜์ง€ ์•Š์„ ๋•Œ๋Š” ์ด์ „ ์ธํ„ฐ๋ฒŒ์„ ํ˜„์žฌ ์ธํ„ฐ๋ฒŒ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
8+
*
9+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(nlogn)
10+
* - n = intervals์˜ ๊ธธ์ด
11+
* - ์ •๋ ฌํ–ˆ์œผ๋ฏ€๋กœ O(nlogn)
12+
*
13+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
14+
* - ๊ณ ์ •๋œ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
15+
*/
16+
function eraseOverlapIntervals(intervals: number[][]): number {
17+
intervals.sort((a, b) => a[1] - b[1]);
18+
19+
let eraseCount = 0,
20+
previousInterval = intervals[0];
21+
22+
for (let i = 1; i < intervals.length; i++) {
23+
const currentInterval = intervals[i];
24+
25+
if (currentInterval[0] < previousInterval[1]) {
26+
eraseCount++;
27+
} else {
28+
previousInterval = intervals[i];
29+
}
30+
}
31+
32+
return eraseCount;
33+
}

0 commit comments

Comments
ย (0)