- ํ์ฌ ๊ตฌ๊ฐ๊ณผ ๋ง์ง๋ง ๊ตฌ๊ฐ์ ๋น๊ต๋ฅผ ์ด๋ป๊ฒ ํ๋๋์ ๋ฌธ์ ์
Solution
from typing import List
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
answer: List[List[int]] = []
intervals.sort(key=lambda x: x[0])
for interval in intervals:
# ๊ฒฐ๊ณผ ๋ฆฌ์คํธ: answer, ํ์ฌ ๊ตฌ๊ฐ: inverval[0]
# ๊ฒฐ๊ณผ ๋ฆฌ์คํธ๊ฐ ๋น์ด ์๊ฑฐ๋
# ํ์ฌ ๊ตฌ๊ฐ์ด answer์ ๋ง์ง๋ง ๊ตฌ๊ฐ๊ณผ ๊ฒน์น์ง ์๋๋ค๋ฉด
# ํ์ฌ ๊ตฌ๊ฐ์ ๊ทธ๋๋ก answer์ ์ถ๊ฐ
if not answer or interval[0] > answer[-1][1]:
answer.append(interval)
continue
# continue์ ์ ๊ฑธ๋ ธ์ผ๋ ๊ฒน์น๋ ๊ตฌ๊ฐ์ด ์๋ค๋ ๋ป -> ํ์ฌ ๊ตฌ๊ฐ๊ณผ answer์ ๋ง์ง๋ง ๊ตฌ๊ฐ์ ๋ณํฉํ๋ฉด ๋จ
# answer์ ๋ง์ง๋ง ๊ตฌ๊ฐ์ ๋ ๊ฐ vs ํ์ฌ ๊ตฌ๊ฐ์ ๋ ๊ฐ
# ์ด๊ฒ์ ๋น๊ตํ์ฌ ๋ ํฐ ๊ฐ์ด ๋์ ์ค๋ ๊ฒ์ด ๋ง์ผ๋ฏ๋ก ๊ทธ๊ฑธ๋ก ์ ํ
answer[-1][1] = max(answer[-1][1], interval[1])
return answer
Reference
Leave a comment