https://youtu.be/A8NUOmlwOlM?si=NI5pa2D5ecqIdVw9
class Solution:
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
res = []
intervals.sort(key=lambda x:x[0])
for i in range(len(intervals)):
if newInterval[1] < intervals[i][0]:
# new_r < prev_l: newInterval 이 intervals 의 왼쪽, 중첩 X
res.append(newInterval)
return res + intervals[i:]
elif newInterval[0] > intervals[i][1]:
# prev_r < new_l : newInterval 이 intervals 의 오른쪽, 중첩 X
res.append(intervals[i]) # intervals 추가하고, 계속
else: # 중첩 경우
newInterval = [min(newInterval[0], intervals[i][0]), max(newInterval[1], intervals[i][1])]
res.append(newInterval)
return res
'LeetCode > Top Interview 150' 카테고리의 다른 글
150. Evaluate Reverse Polish Notation (0) | 2024.12.06 |
---|---|
71. Simplify Path (0) | 2024.12.06 |
128. Longest Consecutive Sequence (0) | 2024.12.03 |
155. Min Stack (0) | 2024.12.02 |
20. Valid Parentheses (0) | 2024.12.02 |