Skip to content

Commit ce6a0f6

Browse files
committed
solve 1
1 parent 6f8065e commit ce6a0f6

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

meeting-rooms/pmjuu.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
'''
2+
시간 복잡도: O(n log n)
3+
공간 복잡도: O(1)
4+
'''
5+
import unittest
6+
from typing import List
7+
8+
class Interval(object):
9+
def __init__(self, start, end):
10+
self.start = start
11+
self.end = end
12+
13+
class Solution:
14+
def can_attend_meetings(self, intervals: List[Interval]) -> bool:
15+
intervals.sort(key=lambda x:x.start)
16+
17+
for i in range(len(intervals) - 1):
18+
if intervals[i + 1].start < intervals[i].end:
19+
return False
20+
21+
return True
22+
23+
class TestCanAttendMeetings(unittest.TestCase):
24+
def setUp(self):
25+
self.solution = Solution()
26+
27+
def test_case_1(self):
28+
intervals = [Interval(0, 30), Interval(5, 10), Interval(15, 20)]
29+
# self.assertFalse(self.solution.can_attend_meetings(intervals))
30+
31+
def test_case_2(self):
32+
intervals = [Interval(5, 8), Interval(9, 15)]
33+
self.assertTrue(self.solution.can_attend_meetings(intervals))
34+
35+
def test_case_3(self):
36+
intervals = []
37+
# self.assertTrue(self.solution.can_attend_meetings(intervals))
38+
39+
def test_case_4(self):
40+
intervals = [Interval(1, 5)]
41+
# self.assertTrue(self.solution.can_attend_meetings(intervals))
42+
43+
def test_case_5(self):
44+
intervals = [Interval(0, 5), Interval(5, 10), Interval(10, 15)]
45+
self.assertTrue(self.solution.can_attend_meetings(intervals))
46+
47+
def test_case_6(self):
48+
intervals = [Interval(1, 3), Interval(2, 6), Interval(8, 10)]
49+
# self.assertFalse(self.solution.can_attend_meetings(intervals))
50+
51+
if __name__ == "__main__":
52+
unittest.main()

0 commit comments

Comments
 (0)