Saltar al contenido

El más votado y el menos votado

Enunciado

En la votación del salón cada voto es el número de un candidato. La lista 1, 1, 2, 2, 7, 8, 4, 5, 1 y 4 son diez votos: el 1 se llevó tres, el 2 y el 4 dos cada uno, y el 5, el 7 y el 8 uno cada uno.

Escribe una función que reciba la lista de votos y regrese la diferencia entre los votos del más votado y los del menos votado. En el ejemplo de arriba son 3 menos 1, así que regresas 2.

Las reglas: solo cuentan los candidatos que recibieron al menos un voto.

Si todos quedaron empatados, la diferencia es 0. Con la lista vacía también regresas 0.

Contar cada voto contra todos los demás funciona, pero hay un camino más corto: ordena los votos y los de un mismo candidato quedan juntos, así que te basta recorrer la lista una vez midiendo qué tan largo es cada grupo.

Ejemplos

  • Diez votos

    [1, 1, 2, 2, 7, 8, 4, 5, 1, 4] → 2

  • Uno se lleva cuatro

    [1, 7, 9, 2, 3, 3, 1, 3, 3] → 3

  • Empate

    [1, 2, 1, 2] → 0

  • El más votado al final

    [4, 4, 9, 9, 9] → 1

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def diferencia_de_votos(votos):
    pass

JavaScript

function diferenciaDeVotos(votos) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n log n)

Ver todos los retos →