Skip to content

Commit 59fa4d9

Browse files
committed
solve: Meeting Rooms 2
1 parent 8105fcb commit 59fa4d9

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""
2+
Time Complexity: O(n log n)
3+
- 정렬에 O(n log n)
4+
- 각 λ―ΈνŒ…μ— λŒ€ν•œ νž™ 연산이 O(log n)
5+
6+
Space Complexity: O(n)
7+
- μ΅œμ•…μ˜ 경우 λͺ¨λ“  λ―ΈνŒ…μ΄ λ™μ‹œμ— μ§„ν–‰λ˜μ–΄ νž™μ— n개의 μ›μ†Œκ°€ μ €μž₯됨
8+
9+
풀이방법:
10+
1. λ―ΈνŒ… μ‹œκ°„(intervals)을 μ‹œμž‘ μ‹œκ°„μ„ κΈ°μ€€μœΌλ‘œ 정렬함
11+
2. μ΅œμ†Œ νž™μ„ μ΄μš©ν•΄μ„œ ν˜„μž¬ μ§„ν–‰ 쀑인 λ―ΈνŒ…μ˜ μ’…λ£Œμ‹œκ°„μ„ μ €μž₯함
12+
3. 각 λ―ΈνŒ…μ„ μˆœνšŒν•˜λ©΄μ„œ:
13+
- μƒˆ λ―ΈνŒ…μ˜ μ‹œμž‘μ‹œκ°„μ΄ νž™μ˜ μ΅œμ†Œ μ’…λ£Œμ‹œκ°„λ³΄λ‹€ ν¬κ±°λ‚˜ κ°™μœΌλ©΄ -> κ°€μž₯ 일찍 λλ‚˜λŠ” λ―ΈνŒ…μ„ νž™μ—μ„œ 제거
14+
- ν˜„μž¬ λ―ΈνŒ…μ˜ μ’…λ£Œμ‹œκ°„μ„ νž™μ— μΆ”κ°€
15+
4. νž™μ˜ 크기 = ν•„μš”ν•œ μ΅œμ†Œ νšŒμ˜μ‹€μ˜ 수
16+
"""
17+
import heapq
18+
19+
def min_meeting_rooms(intervals):
20+
if not intervals:
21+
return 0
22+
23+
intervals.sort(key=lambda x: x[0])
24+
25+
rooms = []
26+
27+
heapq.heappush(rooms, intervals[0][1])
28+
29+
for i in range(1, len(intervals)):
30+
if intervals[i][0] >= rooms[0]:
31+
heapq.heappop(rooms)
32+
heapq.heappush(rooms, intervals[i][1])
33+
return len(rooms)

0 commit comments

Comments
Β (0)