57. Insert Interval

Doyeon Kim·2022년 9월 7일

코딩테스트 공부

목록 보기
116/171

문제 링크 : https://leetcode.com/problems/insert-interval/


주어진 intervals에 새 interval를 삽입해야 한다

해당 문제는 new interval의 범위가 Intervals의 범위가 겹치는지/안겹치는지로 나누어 생각해야한다.

예를 들어 intervals = [[1,3],[6,9]] 가 있고 new interval이 [4,5]면 안겹친다

그러나 intervals = [[1,3],[6,9]] , [0,2]라면
겹치므로
[[0,3] #겹치는 부분중에서 가장 작은 부분이 시작점 가장 큰 부분이 끝나는 점 ,[6,9]]
으로 반환해야한다.

class Solution:
    def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
        res = [ ]
        for i in range(len(intervals)):
            if newInterval[1] < intervals[i][0]:
                res.append(newInterval)
                return res + intervals[i:]
            elif newInterval[0]>intervals[i][1] : 
                res.append(intervals[i])
            else:
                newInterval=[min(intervals[i][0],newInterval[0]), max(intervals[i][1],newInterval[1])]
        res.append(newInterval)
        return res
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글