Skip to content

Commit f467d09

Browse files
committed
solve: Insert Interval
1 parent 000f4a6 commit f467d09

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

โ€Žinsert-interval/KwonNayeon.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
"""
2+
Constraints:
3+
- 0 <= intervals.length <= 10^4
4+
- intervals[i].length == 2
5+
- 0 <= starti <= endi <= 10^5
6+
- intervals is sorted by starti in ascending order.
7+
- newInterval.length == 2
8+
- 0 <= start <= end <= 10^5
9+
10+
Time Complexity: O(n)
11+
- ๋ชจ๋“  interval์„ ํ•œ ๋ฒˆ์”ฉ๋งŒ ์ฒ˜๋ฆฌํ•จ
12+
13+
Space Complexity: O(n)
14+
- ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  interval์„ ๊ฒฐ๊ณผ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ
15+
16+
ํ’€์ด๋ฐฉ๋ฒ•:
17+
1. ์„ธ ๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฒ˜๋ฆฌ:
18+
- Step 1: newInterval๋ณด๋‹ค ์•ž์— ์žˆ๋Š” intervals โ†’ ๊ฒฐ๊ณผ์— ๋ฐ”๋กœ ์ถ”๊ฐ€
19+
- Step 2: newInterval๊ณผ ๊ฒน์น˜๋Š” intervals โ†’ ๋ณ‘ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ interval๋กœ ๋งŒ๋“ฆ
20+
- Step 3: newInterval๋ณด๋‹ค ๋’ค์— ์žˆ๋Š” intervals โ†’ ๊ฒฐ๊ณผ์— ๋ฐ”๋กœ ์ถ”๊ฐ€
21+
2. ๋ณ‘ํ•ฉ ์กฐ๊ฑด:
22+
- ๋‘ interval์ด ๊ฒน์น˜๋Š” ์กฐ๊ฑด: intervals[i][0] <= mergedInterval[1]
23+
- ๋ณ‘ํ•ฉ ์‹œ ์‹œ์ž‘์ : min(mergedInterval[0], intervals[i][0])
24+
- ๋ณ‘ํ•ฉ ์‹œ ๋์ : max(mergedInterval[1], intervals[i][1])
25+
26+
๋…ธํŠธ:
27+
- ์„ธ ๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๋‹ค์Œ์— ํ’€ ๋• ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•ด๋ณผ ๊ฒƒ
28+
"""
29+
class Solution:
30+
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
31+
result = []
32+
i = 0
33+
n = len(intervals)
34+
35+
while i < n and intervals[i][1] < newInterval[0]:
36+
result.append(intervals[i])
37+
i += 1
38+
39+
merged_interval = newInterval
40+
while i < n and intervals[i][0] <= merged_interval[1]:
41+
merged_interval[0] = min(merged_interval[0], intervals[i][0])
42+
merged_interval[1] = max(merged_interval[1], intervals[i][1])
43+
i += 1
44+
result.append(merged_interval)
45+
46+
while i < n:
47+
result.append(intervals[i])
48+
i += 1
49+
50+
return result

0 commit comments

Comments
ย (0)