Skip to content

Commit 012f013

Browse files
committed
meeting-rooms-ii solution
1 parent 2e94045 commit 012f013

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

β€Žmeeting-rooms-ii/yyyyyyyyyKim.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
from typing import (
2+
List,
3+
)
4+
from lintcode import (
5+
Interval,
6+
)
7+
8+
"""
9+
Definition of Interval:
10+
class Interval(object):
11+
def __init__(self, start, end):
12+
self.start = start
13+
self.end = end
14+
"""
15+
16+
class Solution:
17+
"""
18+
@param intervals: an array of meeting time intervals
19+
@return: the minimum number of conference rooms required
20+
"""
21+
def min_meeting_rooms(self, intervals: List[Interval]) -> int:
22+
23+
# νˆ¬ν¬μΈν„°
24+
# μ‹œκ°„λ³΅μž‘λ„ O(n log n) , κ³΅κ°„λ³΅μž‘λ„ O(n)
25+
26+
# μ‹œμž‘ μ‹œκ°„κ³Ό μ’…λ£Œ μ‹œκ°„μ„ 각각 μ •λ ¬
27+
s = sorted([i.start for i in intervals])
28+
e = sorted([i.end for i in intervals])
29+
30+
s_pointer = e_pointer = 0
31+
rooms = max_rooms = 0
32+
33+
while s_pointer < len(intervals):
34+
35+
# κΈ°μ‘΄ νšŒμ˜κ°€ λλ‚˜κΈ° 전에 μƒˆλ‘œμš΄ 회의 μ‹œμž‘(μƒˆλ‘œμš΄ λ°© ν•„μš”)
36+
if s[s_pointer] < e[e_pointer]:
37+
rooms += 1
38+
s_pointer += 1
39+
# κΈ°μ‘΄ 회의 μ’…λ£Œ(λ°© 퇴싀)
40+
else:
41+
rooms -= 1
42+
e_pointer += 1
43+
44+
# μ§€κΈˆκΉŒμ§€ ν•„μš”ν•œ 방의 μ΅œλŒ€κ°’μ„ κ°±μ‹ 
45+
max_rooms = max(max_rooms, rooms)
46+
47+
return max_rooms
48+

0 commit comments

Comments
Β (0)