diff --git a/2491-divide-players-into-teams-of-equal-skill/soln.py b/2491-divide-players-into-teams-of-equal-skill/soln.py new file mode 100644 index 0000000..eb8f837 --- /dev/null +++ b/2491-divide-players-into-teams-of-equal-skill/soln.py @@ -0,0 +1,19 @@ + +class Solution: + # pretty elementary approach + # in-place sort, so nlogn time, 1 space + def dividePlayers(self, skill: list[int]) -> int: + skill.sort() + sl = len(skill) + total_chem = 0 + avg_team_skill = -1 + for i in range((sl // 2) - 1, -1, -1): + team_skill = skill[i] + skill[sl - i - 1] + team_chem = skill[i] * skill[sl - i - 1] + if avg_team_skill == -1: + avg_team_skill = team_skill + elif team_skill != avg_team_skill: + return -1 + total_chem += team_chem + return total_chem + # could go for a hashmap/dict approach \ No newline at end of file