LeetCode/Top Interview 150

57. Insert Interval

hyunkookim 2024. 12. 3. 17:49

57. Insert Interval

 

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