|
| 1 | +''' |
| 2 | +# 253. Meeting Rooms II |
| 3 | +
|
| 4 | +μ΅μ ν Min Heapμ μ¬μ©νμ¬ νμ μ’
λ£ μκ°μ μ μ₯ν©λλ€. μ΅μ νμ κΈΈμ΄λ νμν νμμ€ κ°μμ
λλ€. |
| 5 | +
|
| 6 | +## κ°λ
|
| 7 | +``` |
| 8 | +π‘ μ΅μ ν Min Heap |
| 9 | +- νμ μμ μ΄μ§ νΈλ¦¬μ΄λ€. |
| 10 | +- λΆλͺ¨ λ
Έλμ κ°μ΄ μμ λ
Έλμ κ°λ³΄λ€ μλ€. |
| 11 | +- μ΅μκ°μ 루νΈμ λκΈ° λλ¬Έμ μ΅μκ°μ μ°Ύλ μκ°λ³΅μ‘λκ° O(1)μ΄λ€. |
| 12 | +``` |
| 13 | +``` |
| 14 | +π‘ μμ μ΄μ§ νΈλ¦¬ |
| 15 | +- νΈλ¦¬μ λͺ¨λ λ λ²¨μ΄ μμ ν μ±μμ Έ μκ³ , λ§μ§λ§ λ 벨μ μΌμͺ½λΆν° μ±μ΄λ€. |
| 16 | +- μ½μ
κ³Ό μμ λ O(log n)μ μκ°λ³΅μ‘λλ₯Ό κ°μ§λ€. |
| 17 | + - μ½μ
μ νΈλ¦¬μ λ§μ§λ§ λ
Έλμ μ½μ
νκ³ λ²λΈμ
μ μ§ννλ€. |
| 18 | + - μμ λ νΈλ¦¬μ λ£¨νΈ λ
Έλλ₯Ό μμ νκ³ , λ²λΈλ€μ΄μ μ§ννλ€. |
| 19 | +``` |
| 20 | +
|
| 21 | +## νμμ€ μ¬μ¬μ© 쑰건 |
| 22 | +κ°μ₯ λ¨Όμ λλλ νμμ λ€μ νμ μμμ λΉκ΅νμ¬, λ€μ νμ μμμ΄ κ°μ₯ λ¨Όμ λλλ νμλ³΄λ€ ν¬κ±°λ κ°λ€λ©΄, κ°μ νμμ€μ μ¬μ© κ°λ₯νλ€. |
| 23 | +
|
| 24 | +## νμ΄ |
| 25 | +``` |
| 26 | +μ΅μ νμ κΈΈμ΄ = μ¬μ© μ€μΈ νμμ€ κ°μ = νμν νμμ€ κ°μ |
| 27 | +``` |
| 28 | +1. νμ μμ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬ |
| 29 | +2. νμ λ°°μ΄μ μννλ©° νμ μ’
λ£ μκ°μ μ΅μ νμ μ μ₯ |
| 30 | +3. νμμ€μ μ¬μ¬μ©ν μ μλ κ²½μ°, κ°μ₯ λ¨Όμ λλλ νμ μμ ν μ νμ μ’
λ£ μκ° μΆκ°(ν΄λΉ νμμ€μ μ’
λ£ μκ° μ
λ°μ΄νΈ) |
| 31 | +4. μ΅μ’
μ¬μ© μ€μΈ νμμ€ κ°μλ₯Ό λ°ν |
| 32 | +
|
| 33 | +
|
| 34 | +## μκ° & κ³΅κ° λ³΅μ‘λ |
| 35 | +- μκ° λ³΅μ‘λ: O(n log n) |
| 36 | + - νμ λ°°μ΄ μ λ ¬: O(n log n) |
| 37 | + - νμ λ°°μ΄ μν: O(n) |
| 38 | + - μ΅μ ν μ½μ
& μμ : O(log n) |
| 39 | +- κ³΅κ° λ³΅μ‘λ: O(n) |
| 40 | + - μ΅μ ν μ¬μ©: O(n), μ΅μ
μ κ²½μ° |
| 41 | +''' |
| 42 | +from heapq import heappush, heappop |
| 43 | + |
| 44 | +class Solution: |
| 45 | + def minMeetingRooms(self, intervals: List[Interval]) -> int: |
| 46 | + if not intervals: |
| 47 | + return 0 |
| 48 | + |
| 49 | + intervals.sort(key=lambda x: x.start) |
| 50 | + |
| 51 | + min_heap = [] |
| 52 | + for interval in intervals: |
| 53 | + if min_heap and min_heap[0] <= interval.start: |
| 54 | + heappop(min_heap) |
| 55 | + |
| 56 | + heappush(min_heap, interval.end) |
| 57 | + |
| 58 | + return len(min_heap) |
0 commit comments