Skip to content

Commit 528d4c7

Browse files
committed
solve: Meeting rooms
1 parent a5533cd commit 528d4c7

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

โ€Žmeeting-rooms/KwonNayeon.py

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,50 @@
11
"""
22
Constraints:
3-
-
3+
- 0 โ‰ค intervals.length โ‰ค 10^4
4+
- intervals[i].length == 2
5+
- 0 โ‰ค start_i < end_i โ‰ค 10^6
6+
- [(0,8), (8,10)] is not conflict at 8
47
5-
Time Complexity:
6-
-
8+
Time Complexity: O(nlogn)
9+
- ์ •๋ ฌ์— nlogn, ์ˆœํšŒ์— n์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์ „์ฒด๋Š” O(nlogn)
710
8-
Space Complexity:
9-
-
11+
Space Complexity: O(1)
12+
- ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜์˜ ๋ณ€์ˆ˜ ์™ธ์—๋Š” ์ถ”๊ฐ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
1013
1114
ํ’€์ด๋ฐฉ๋ฒ•:
12-
1.
15+
1. Base case: ๋นˆ ๋ฐฐ์—ด/none์ผ ๋•Œ True ๋ฐ˜ํ™˜
16+
2. intervals๋ฅผ ์‹œ์ž‘์  ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ
17+
3. prev_end ์ดˆ๊ธฐํ™” (์ฒซ ๋ฒˆ์งธ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„)
18+
4. ๋‘ ๋ฒˆ์งธ ๋ฏธํŒ…๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ:
19+
- ๋งŒ์•ฝ ํ˜„์žฌ ์‹œ์ž‘์  (๋ฏธํŒ… ์‹œ์ž‘ ์‹œ๊ฐ„)์ด ์ด์ „ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„๋ณด๋‹ค ์ž‘์œผ๋ฉด false ๋ฐ˜ํ™˜
20+
- ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด prev_end๋ฅผ ํ˜„์žฌ ๋ฏธํŒ…์˜ ์ข…๋ฃŒ ์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ
21+
5. ๋ชจ๋“  ๋ฏธํŒ…์„ ๊ฒ€์‚ฌํ•œ ํ›„์—๋„ ์ถฉ๋Œ์ด ์—†์œผ๋ฉด true ๋ฐ˜ํ™˜
1322
"""
23+
from typing import List
24+
25+
class Interval:
26+
def __init__(self, start, end):
27+
self.start = start
28+
self.end = end
29+
30+
class Solution:
31+
"""
32+
@param intervals: an array of meeting time intervals
33+
@return: if a person could attend all meetings
34+
"""
35+
def can_attend_meetings(self, intervals: List[Interval]) -> bool:
36+
if not intervals:
37+
return True
38+
39+
intervals.sort(key=lambda x: x.start)
40+
41+
prev_end = intervals[0].end
42+
43+
for interval in intervals[1:]:
44+
45+
if interval.start < prev_end:
46+
return False
47+
prev_end = interval.end
48+
49+
return True
50+

0 commit comments

Comments
ย (0)