-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProblemO.py
69 lines (51 loc) · 2.01 KB
/
ProblemO.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class Player:
def __init__(self, name, bravery, dedication, intellegence, ambition):
self.name = name
total = bravery + dedication + intellegence + ambition
self.bravery = bravery / total
self.dedication = dedication / total
self.intellegence = intellegence / total
self.ambition = ambition / total
num_players = int(input())
players = []
for _ in range(num_players):
name, bravery, dedication, intellegence, ambition = input().split()
players.append(Player(name, int(bravery), int(
dedication), int(intellegence), int(ambition)))
# sort players alphabetically by name
players = sorted(players, key=lambda x: x.name)
# Create teams for captains: Jennifer, Tray, Coco, and Calins
teamJennifer = []
teamTray = []
teamCoco = []
teamCalins = []
# Round robin choose teams by preference in traits if equal then alphabetical. Jennifer prefers bravery, Tray prefers dedication, Coco prefers intelligence, and Calins prefers ambition.
preferences = ['bravery', 'dedication', 'intellegence', 'ambition']
for i in range(len(players)):
trait = preferences[i % 4]
# get player with highest trait score and assign to team
top_player = max(players, key=lambda x: getattr(x, trait))
players.remove(top_player)
if trait == 'bravery':
teamJennifer.append(top_player)
elif trait == 'dedication':
teamTray.append(top_player)
elif trait == 'intellegence':
teamCoco.append(top_player)
else:
teamCalins.append(top_player)
print('Jennifer:')
teamJennifer = sorted(teamJennifer, key=lambda x: x.name)
[print(f'{player.name}') for player in teamJennifer]
print()
print('Tray:')
teamTray = sorted(teamTray, key=lambda x: x.name)
[print(f'{player.name}') for player in teamTray]
print()
print('Coco:')
teamCoco = sorted(teamCoco, key=lambda x: x.name)
[print(f'{player.name}') for player in teamCoco]
print()
print('Calins:')
teamCalins = sorted(teamCalins, key=lambda x: x.name)
[print(f'{player.name}') for player in teamCalins]