File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ # https://leetcode.com/problems/insert-interval/
2
+ #
3
+ # ์๋ก์ด ๊ตฌ๊ฐ์ ๊ธฐ์กด์ ์ ๋ ฌ๋ ๊ตฌ๊ฐ ๋ฆฌ์คํธ์ ์ฝ์
ํ๊ณ , ๊ฒน์น๋ ๊ตฌ๊ฐ์ ๋ณํฉ
4
+ # ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ [start, end] ํํ์ ๋ฆฌ์คํธ.
5
+ # ์๋ก์ด interval [newStart, newEnd]๋ฅผ ์ฝ์
ํ ํ์๋ ๊ตฌ๊ฐ์ด ๊ฒน์น์ง ์๊ณ ์ ๋ ฌ๋ ์ํ๋ก ์ ์ง.
6
+ #
7
+ # TC: O(N), ๊ฐ interval์ ์ต๋ ํ ๋ฒ์ฉ๋ง ํ์
8
+ # SC: O(N)
9
+
10
+ from typing import List
11
+
12
+ class Solution :
13
+ def insert (self , intervals : List [List [int ]], newInterval : List [int ]) -> List [List [int ]]:
14
+ res = []
15
+ i = 0
16
+ n = len (intervals )
17
+
18
+ # 1. ์ผ์ชฝ์ ์๋ ๊ฒน์น์ง ์๋ ๊ตฌ๊ฐ
19
+ while i < n and intervals [i ][1 ] < newInterval [0 ]:
20
+ res .append (intervals [i ])
21
+ i += 1
22
+
23
+ # 2. ๊ฒน์น๋ ๊ตฌ๊ฐ ๋ณํฉ
24
+ while i < n and intervals [i ][0 ] <= newInterval [1 ]:
25
+ newInterval [0 ] = min (newInterval [0 ], intervals [i ][0 ])
26
+ newInterval [1 ] = max (newInterval [1 ], intervals [i ][1 ])
27
+ i += 1
28
+ res .append (newInterval )
29
+
30
+ # 3. ์ค๋ฅธ์ชฝ์ ์๋ ๊ฒน์น์ง ์๋ ๊ตฌ๊ฐ
31
+ while i < n :
32
+ res .append (intervals [i ])
33
+ i += 1
34
+
35
+ return res
You canโt perform that action at this time.
0 commit comments