Skip to content

Commit b49ce60

Browse files
committed
solve: merge intervals
1 parent 5a411b0 commit b49ce60

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

โ€Žmerge-intervals/KwonNayeon.py

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,32 @@
44
- intervals[i].length == 2
55
- 0 <= starti <= endi <= 10^4
66
7-
Time Complexity:
8-
-
7+
Time Complexity: O(nlogn)
8+
- ์ •๋ ฌ์— nlogn, ์ˆœํšŒ์— n์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ „์ฒด๋Š” O(nlogn)
99
10-
Space Complexity:
11-
-
10+
Space Complexity: O(n)
11+
- ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ตฌ๊ฐ„์ด ๊ฒน์น˜์ง€ ์•Š์•„ n๊ฐœ์˜ ๊ตฌ๊ฐ„์„ ์ €์žฅํ•ด์•ผ ํ•จ
1212
1313
ํ’€์ด๋ฐฉ๋ฒ•:
14-
1.
14+
1. merged ๋ฐฐ์—ด์„ intervals์˜ ์ฒซ ๋ฒˆ์งธ ๊ตฌ๊ฐ„์œผ๋กœ ์ดˆ๊ธฐํ™”
15+
2. intervals์˜ ๋‘ ๋ฒˆ์งธ ๊ตฌ๊ฐ„๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ:
16+
- ํ˜„์žฌ ๊ตฌ๊ฐ„์˜ ์‹œ์ž‘์ ์ด merged ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ๊ตฌ๊ฐ„์˜ ๋์ ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ๋ณ‘ํ•ฉ
17+
- ๋ณ‘ํ•ฉํ•  ๋•Œ๋Š” ๋์ ์„ ๋‘ ๊ตฌ๊ฐ„์˜ ๋์  ์ค‘ ๋” ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •
18+
3. ํ˜„์žฌ ๊ตฌ๊ฐ„์ด merged์˜ ๋งˆ์ง€๋ง‰ ๊ตฌ๊ฐ„๊ณผ ๊ฒน์น˜์ง€ ์•Š์œผ๋ฉด ๊ทธ๋Œ€๋กœ merged์— ์ถ”๊ฐ€
19+
4. 2-3์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ชจ๋“  ๊ตฌ๊ฐ„์„ ์ฒ˜๋ฆฌํ•จ
1520
"""
21+
class Solution:
22+
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
23+
if not intervals:
24+
return []
25+
26+
merged = [intervals[0]]
27+
28+
for interval in intervals[1:]:
29+
if interval[0] <= merged[-1][1]:
30+
merged[-1][1] = max(merged[-1][1], interval[1])
31+
32+
else:
33+
merged.append(interval)
34+
35+
return merged

0 commit comments

Comments
ย (0)