Sac à dos

Sac à dos

Moyen

Introduction

Lhakpa est guide de montagne et porteuse sherpa. Après des mois de préparation minutieuse, l'expédition pour laquelle Lhakpa travaille s'apprête à partir. Elle sera payée à hauteur de la valeur de ce qu'elle a porté jusqu'au camp de base.

Devant elle se trouvent de nombreux objets, chacun avec une valeur et un poids. Lhakpa prendrait volontiers tous ces objets, mais son sac à dos ne peut contenir qu'un poids limité.

Instructions

Ta tâche consiste à déterminer quels objets prendre pour que la valeur totale de sa sélection soit maximisée, en tenant compte de la capacité de charge du sac à dos.

Les objets seront représentés par une liste d'objets. Chaque objet aura un poids et une valeur. Toutes les valeurs données seront strictement positives. Lhakpa ne peut prendre qu'un seul exemplaire de chaque objet.

Par exemple :

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

Knapsack Maximum Weight: 10

Dans l'exemple ci-dessus, le premier objet a un poids de 5 et une valeur de 10, le deuxième objet a un poids de 4 et une valeur de 40, et ainsi de suite. Dans cet exemple, Lhakpa doit prendre le deuxième et le quatrième objet pour maximiser sa valeur, qui, dans ce cas, est de 90. Elle ne peut pas obtenir plus de 90, car son sac à dos a une limite de poids de 10.


Source

WikipediaLe lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Clojure Exercism

Prêt à commencer Sac à dos ?

Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.