Skip to content

Commit ea27d10

Browse files
Non-overlapping Intervals
1 parent b6fa871 commit ea27d10

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import java.util.Arrays;
2+
import java.util.Comparator;
3+
4+
class Solution {
5+
public int eraseOverlapIntervals(int[][] intervals) {
6+
// ํ’€์ด: ์ •๋ ฌ ํ›„ ๊ฐ ๊ตฌ๊ฐ„์˜ ๋ ๊ฐ’์„ ์ €์žฅํ•ด๊ฐ€๋ฉฐ ์–‘ ์˜†์„ ๋น„๊ต, ์ œ๊ฑฐ ๋Œ€์ƒ์ผ๋•Œ ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
7+
// TC: O(N)
8+
// SC: O(1)
9+
10+
// intervals๋ฅผ ๊ฐ ๊ตฌ๊ฐ„์˜ ๋ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
11+
Arrays.sort(intervals, Comparator.comparingInt(a -> a[1]));
12+
13+
int answer = 0;
14+
int end = intervals[0][1]; // ์ฒซ ๋ฒˆ์งธ ๊ตฌ๊ฐ„์˜ ๋ ๊ฐ’
15+
16+
// ๋‘ ๋ฒˆ์งธ ๊ตฌ๊ฐ„๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉฐ ๊ฒน์น˜๋Š”์ง€ ํ™•์ธ
17+
for (int i = 1; i < intervals.length; i++) {
18+
if (intervals[i][0] < end) { // ํ˜„์žฌ ๊ตฌ๊ฐ„์ด ์ด์ „ ๊ตฌ๊ฐ„๊ณผ ๊ฒน์น˜๋ฉด
19+
answer++; // ์ œ๊ฑฐ ํšŸ์ˆ˜๋ฅผ ์ฆ๊ฐ€
20+
} else {
21+
end = intervals[i][1]; // ๊ฒน์น˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ๋ ๊ฐ’์„ ๊ฐฑ์‹ 
22+
}
23+
}
24+
25+
return answer;
26+
}
27+
}

0 commit comments

Comments
ย (0)