Skip to content

Commit

Permalink
Reto mouredev#38 - Python
Browse files Browse the repository at this point in the history
  • Loading branch information
guillepinto committed Nov 6, 2023
1 parent cf71619 commit 54f4fc2
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions Retos/Reto #38 - LAS SUMAS [Media]/python/majinka10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
def sumaObjetivo(numeros:list, objetivo:int):
"""
Encuentra todas las combinaciones de los números de una
lista que suman el valor objetivo.
Args:
- numeros (list): Lista de numeros, enteros positivos, de la que quiero
encontrar las combinaciones.
- objetivo (int): Valor entero positivo objetivo.
Returns:
- combinaciones (list): Lista con las combinaciones encontradas.
"""
# Caso base de la recursión (que la suma de la lista sea el numero)
if sum(numeros) == objetivo:
return [numeros]

# Defino la lista donde guardadaré las combinaciones
combinaciones = []

for i in range(len(numeros)):
# Evaluo cada lista posible
resto_numeros = numeros[:i] + numeros[i+1:]
# Encuentro las listas que cumplen
combinaciones_resto = sumaObjetivo(resto_numeros, objetivo)

# Para cada combinacion encontrada, si no está en las combinaciones, la añado
# el if lo aplico para evitar listas repetidas
for combinacion in combinaciones_resto:
if combinacion not in combinaciones:
combinaciones.append(combinacion)

return combinaciones

resultado = sumaObjetivo([1, 5, 3, 2, 3, 6], 6)
print(f"Soluciones: {resultado}")

0 comments on commit 54f4fc2

Please sign in to comment.