@@ -24,27 +24,41 @@ class Laptop:
2424 operating_system : OperatingSystem
2525
2626laptops = [
27- Laptop (id = 1 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 13 , operating_system = "Arch Linux" ),
28- Laptop (id = 2 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 15 , operating_system = "Ubuntu" ),
29- Laptop (id = 3 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 15 , operating_system = "Ubuntu" ),
30- Laptop (id = 4 , manufacturer = "Apple" , model = "macBook" , screen_size_in_inches = 13 , operating_system = "macOS" ),
27+ Laptop (id = 1 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 13 , operating_system = OperatingSystem . ARCH ),
28+ Laptop (id = 2 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 15 , operating_system = OperatingSystem . UBUNTU ),
29+ Laptop (id = 3 , manufacturer = "Dell" , model = "XPS" , screen_size_in_inches = 15 , operating_system = OperatingSystem . UBUNTU ),
30+ Laptop (id = 4 , manufacturer = "Apple" , model = "macBook" , screen_size_in_inches = 13 , operating_system = OperatingSystem . MACOS ),
3131]
3232people = [
33- Person (name = "Imran" , age = 22 , preferred_operating_system = ["Arch Linux" , "Ubuntu" ]),
34- Person (name = "Eliza" , age = 34 , preferred_operating_system = ["Arch Linux" , "macOS" , "Ubuntu" ]),
35- Person (name = "Leila" , age = 45 , preferred_operating_system = ["macOS" , "Ubuntu" , "Arch Linux" , ]),
36- Person (name = "Mary" , age = 35 , preferred_operating_system = ["macOS" , "Arch Linux" ]),
33+ Person (name = "Imran" , age = 22 , preferred_operating_system = [OperatingSystem . ARCH , OperatingSystem . UBUNTU ]),
34+ Person (name = "Eliza" , age = 34 , preferred_operating_system = [OperatingSystem . ARCH , OperatingSystem . MACOS , OperatingSystem . UBUNTU ]),
35+ Person (name = "Leila" , age = 45 , preferred_operating_system = [OperatingSystem . MACOS , OperatingSystem . UBUNTU , OperatingSystem . ARCH ]),
36+ Person (name = "Mary" , age = 35 , preferred_operating_system = [OperatingSystem . MACOS , OperatingSystem . ARCH ]),
3737]
3838def allocate_laptops (people : List [Person ], laptops : List [Laptop ]) -> Dict [Person , Laptop ]:
39+ allocated_history : Dict [Person ,Laptop ] = {}
40+ sadness = 0
3941 for person in people :
40- allocated = False
42+ allocated_flag = False
4143 for i in range (len (person .preferred_operating_system )) :
4244 for laptop in laptops :
4345 if person .preferred_operating_system [i ] == laptop .operating_system :
44- print (person .name ,laptop .id ,laptop .operating_system ,i )
46+ allocated_history [person .name ]= laptop
47+ # print(person.name,laptop.id,laptop.operating_system,i)
48+ sadness += i
4549 laptops .remove (laptop )
46- allocated = True
50+ allocated_flag = True
4751 break
48- if allocated : break
52+ if allocated_flag :
53+ break
54+
55+ if not allocated_flag :
56+ allocated_history [person .name ]= laptops [0 ]
57+ laptops .remove (laptops [0 ])
58+ sadness += 100
59+
60+
61+
62+ return allocated_history ,sadness
4963
50- allocate_laptops (people ,laptops )
64+ print ( allocate_laptops (people ,laptops ))
0 commit comments