Skip to content

Commit 1fe0e49

Browse files
committed
improving codeand assign laptops to every person
1 parent f4bb681 commit 1fe0e49

1 file changed

Lines changed: 27 additions & 13 deletions

File tree

laptop_allocation.py

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,41 @@ class Laptop:
2424
operating_system: OperatingSystem
2525

2626
laptops = [
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
]
3232
people = [
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
]
3838
def 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

Comments
 (0)