Gevraagd wordt om de stemformulieren van een verkiezing te verwerken waarbij elke kiezer de naam van zijn of haar favoriete kandidaat opgeschreven heeft. De k kandidaten met de meeste stemmen zijn verkozen, waarbij de waarde van k als parameter wordt meegegeven.

Ontwerp en implementeer een algoritme voor dit probleem. Bepaal de tijdscomplexiteit van jouw algoritme.

Opgave

Schrijf een Python-functie tel(aantalVerkozenen: int, stemmen: list). Deze functie neemt het aantal verkozenen en de lijst met stemformulieren als input en geeft een collectie terug met de verkozen personen. Indien er een ex aequo is bij de bepaling van de k-de verkozene, kies je willekeurig één van deze personen.

Voorbeelden

>>> tel(2, ["Piet", "Joris", "Piet", "Corneel", "Piet", "Jan", "Corneel", "Jan", "Corneel", "Corneel", "Corneel"])
{'Corneel', 'Piet'}
>>> tel(2, ["Joris","Herman","Nathan","Herman","Joris","Nathan","Nathan","Felix","Felix","Herman","Piet","Herman","Herman","Joris","Felix","Herman","Corneel","Joris"])
{'Herman', 'Joris'}
>>> tel(4, ["Herman","Corneel","Nathan","Felix","Corneel","Margot","Piet","Herman","Felix","Jan","Felix","Herman","Nathan","Herman","Jan","Jan","Piet","Jan","Margot","Herman","Felix","Joris","Jan","Jan","Nathan"])
{'Felix', 'Herman', 'Jan', 'Nathan'}
>>> tel(3, ["Nathan","Margot","Margot","Karen","Felix","Felix","Karen","Herman","Karen","Herman","Karen","Herman","Chloë","Herman","Nathan","Margot","Margot","Herman","Nathan","Felix","Herman","Karen","Karen"])
{'Herman', 'Karen', 'Margot'}