Lo que se vendió una sola vez
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- ciclos
Enunciado
En una papelería anotan el código de cada cuaderno que se vendió hoy, en el orden en que salieron: 3, 8, 3, 5, 9, 8. El 3 y el 8 se vendieron dos veces; el 5 y el 9, una sola.
Escribe una función que reciba una lista de números y regrese la suma de los que aparecen una sola vez en toda la lista. Con la lista de arriba regresas 14, que es 5 + 9.
Cuidado con la trampa: no se trata de sumar cada número una vez. El 3 y el 8 no aportan nada, porque están repetidos: se quedan fuera por completo.
Si todos los números están repetidos, o si la lista llega vacía, regresas 0. Los números pueden ser negativos.
Pista: al ordenar la lista, las copias de un mismo número quedan pegadas. Así, un número aparece una sola vez si es distinto del que va antes y del que va después.
Ejemplos
Dos repetidos
[3, 8, 3, 5, 9, 8] → 14
Ninguno se repite
[4, 1, 7] → 12
Uno sale tres veces
[1, 2, 3, 1, 1, 4, 5, 6] → 20
Lista larga y desordenada
[1, 10, 9, 4, 2, 10, 10, 45, 4] → 57
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def suma_de_unicos(numeros):
passJavaScript
function sumaDeUnicos(numeros) {
}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)
- Los anagramas de una palabratextos · listas · ordenar
- Los andenes de la estaciónlistas · ordenar · ciclos
- Los botes de rescatelistas · ordenar · comparaciones
- Los costales antes de la lluvialistas · búsqueda · división
- Los hechizos que volteanordenar · listas · condicionales
- Los números de las camisetaslistas · ordenar · ciclos