File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import heapq
2+
3+ from typing import (
4+ List ,
5+ )
6+
7+ # Definition of Interval
8+ class Interval (object ):
9+ def __init__ (self , start , end ):
10+ self .start = start
11+ self .end = end
12+
13+
14+ class Solution :
15+ def min_meeting_rooms (self , intervals : List [Interval ]) -> int :
16+ # ์ด ๋ฌธ์ ์์๋ ํ์ ์์๊ณผ ๋ ์๊ฐ์ด interval์ด๋ผ๋ ๋ณ๊ฐ์ ๊ฐ์ฒด๋ก ์ ์๋์ด ์์
17+ # Meeting Rooms ๋ฌธ์ ์ฒ๋ผ, ์์ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฏธ๋ฆฌ ์ ๋ ฌ
18+ intervals .sort (key = lambda x : x .start )
19+
20+ # ํ์ฌ ํ์๊ฐ ์งํ์ค์ธ ๋ฐฉ ๊ฐฏ์
21+ rooms = []
22+
23+ for current in intervals :
24+ # ์ด๊ธฐ ์ค์ - ์ฌ์ฉ์ค์ธ ๋ฐฉ์ด ์๋ค๋ฉด, ๊ทธ๋ฅ ์ถ๊ฐ
25+ # ๋น ๋ฐฐ์ด์ด๋ฏ๋ก heappush๋ฅผ ์ฌ์ฉํ ํ์๋ ์๋ค
26+ if not rooms :
27+ rooms .append (current .end )
28+ else :
29+ # ํ์ฌ ์งํ ์ค์ธ ํ์ ์ค ๊ฐ์ฅ ๋นจ๋ฆฌ ๋๋๋ ์๊ฐ์ ์ถ์ถ
30+ ending = heapq .heappop (rooms )
31+
32+ # ํ์ฌ ํ์์ ์์ ์๊ฐ์ด ๊ฐ์ฅ ๋นจ๋ฆฌ ๋๋๋ ํ์๋ณด๋ค ๋น ๋ฅด๋ค๋ฉด, ํด๋น ์๋ฆฌ๋ฅผ ๋น์ธ ์ ์์ผ๋ฏ๋ก ๋ค์ ํ์ ์ฝ์
33+ if current .start < ending :
34+ heapq .heappush (rooms , ending )
35+
36+ # ํ์ฌ ํ์๊ฐ ๋๋๋ ์๊ฐ ์ฝ์
37+ heapq .heappush (rooms , current .end )
38+
39+ # ์์ฐ์ค๋ฝ๊ฒ, ๋๋๋ ์๊ฐ๋ค์ด ๋ด๊ธด ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ์ต์ ํ์์ค ๊ฐฏ์
40+ return len (rooms )
You canโt perform that action at this time.
0 commit comments