From ac27bdd8407298bf3c3335cd93b8960df37a562c Mon Sep 17 00:00:00 2001 From: Kaushik Narayan R Date: Thu, 3 Oct 2024 22:38:37 -0700 Subject: [PATCH] 2491-divide-players-into-teams-of-equal-skill --- .../soln.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 2491-divide-players-into-teams-of-equal-skill/soln.py 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