문제 링크 : 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