Menu
Coddy logo textTech

Knapsack Problem

Lección 7 de 15 del curso Desafíos de recursividad - Domina el pensamiento recursivo de Coddy.

challenge icon

Desafío

Intermedio

El problema de la mochila es un problema famoso.

En este problema, tienes una mochila que tiene un peso predefinido que puede soportar e ítems donde cada ítem tiene un peso y un valor.

Tu tarea es obtener el mayor valor posible dentro de los límites del peso de la mochila. 


Por ejemplo,

values - [20, 5, 40, 10, 15]

weights - [1, 2, 8, 3, 7]

Peso de la mochila - 10

 

La solución es tomar los ítems con los pesos 1 y 8 y los valores 20 y 40.

El valor máximo es 60, y el peso total es 9 (que es menor o igual a 10, lo que significa que es un peso válido).


Escribe una función llamada knapsack que reciba un entero W y dos arreglos de enteros values y weights y devuelva la solución para el problema de la mochila utilizando los valores de entrada (el valor máximo que la mochila puede contener).

Pruébalo tú mismo

#include <stdio.h>
#include <stdlib.h>

int knapsack(int W, int* values, int values_size, int* weights, int weights_size) {
    // Escribe el código aquí
    return 0;
}

Todas las lecciones de Desafíos de recursividad - Domina el pensamiento recursivo