Skip to content

Commit 335d767

Browse files
committed
feat(soobing): week12 > non-overlapping-intervals
1 parent 84105a9 commit 335d767

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* 문제 μ„€λͺ…
3+
* - κ²ΉμΉ˜μ§€ μ•ŠλŠ” μ΅œλŒ€ν•œ λ§Žμ€ ꡬ간을 μ„ νƒν•˜λŠ” 문제 (그러기 μœ„ν•΄μ„œλŠ” λͺ‡κ°œλ₯Ό μ œκ±°ν•΄μ•Όν•˜λŠ”μ§€)
4+
*
5+
* 아이디어
6+
* 1) 그리디 μ•Œκ³ λ¦¬μ¦˜
7+
* - μ΅œλŒ€ν•œ λ§Žμ€ ꡬ간 선택을 μœ„ν•΄μ„œλŠ” λλ‚˜λŠ” μ‹œκ°„μ„ κΈ°μ€€μœΌλ‘œ μ •λ ¬
8+
* - 순회 ν•˜λ©΄μ„œ λ‹€μŒ μ‹œμž‘ μ‹œκ°„μ΄ ν˜„μž¬ λλ‚˜λŠ” μ‹œκ°„λ³΄λ‹€ ν¬κ±°λ‚˜ κ°™μœΌλ©΄ 카운트 증가
9+
*/
10+
function eraseOverlapIntervals(intervals: number[][]): number {
11+
if (intervals.length === 0) return 0;
12+
13+
intervals.sort((a, b) => a[1] - b[1]);
14+
15+
let count = 1;
16+
let end = intervals[0][1];
17+
18+
for (let i = 1; i < intervals.length; i++) {
19+
if (intervals[i][0] >= end) {
20+
count++;
21+
end = intervals[i][1];
22+
}
23+
}
24+
return intervals.length - count;
25+
}

0 commit comments

Comments
Β (0)