Mochila

Mochila

Médio

Introdução

Bob é um ladrão. Depois de meses de planejamento cuidadoso, ele finalmente consegue burlar os sistemas de segurança de uma loja de luxo.

Diante dele há vários itens, cada um com um valor e um peso. Bob levaria todos eles de bom grado, mas sua mochila só aguenta um peso limitado. Bob precisa escolher com cuidado quais itens levar para que o valor total da sua seleção seja o maior possível.

Instruções

Sua tarefa é determinar quais itens levar para que o valor total da seleção seja maximizado, levando em conta a capacidade de carga da mochila.

Os itens serão representados como uma lista de itens. Cada item terá um peso e um valor. Todos os valores informados serão estritamente positivos. Bob pode levar apenas um de cada item.

Por exemplo:

Items: [
  { "weight": 5, "value": 10 },
  { "weight": 4, "value": 40 },
  { "weight": 6, "value": 30 },
  { "weight": 4, "value": 50 }
]

Knapsack Maximum Weight: 10

No exemplo acima, o primeiro item tem peso 5 e valor 10, o segundo item tem peso 4 e valor 40, e assim por diante. Neste exemplo, Bob deve levar o segundo e o quarto item para maximizar seu valor, que, neste caso, é 90. Ele não consegue mais do que 90, pois sua mochila tem um limite de peso de 10.


Fonte

WikipediaO link abre em uma nova janela ou aba
Editar via GitHub O link abre em uma nova janela ou aba
Haskell Exercism

Tudo pronto para começar Mochila?

Crie sua conta no Exercism para aprender e dominar Haskell com 107 exercícios e mentoria humana de verdade, tudo de graça.