Menu
Coddy logo textTech

Récapitulatif - Inventaire

Fait partie de la section Logique et Flux du Journey Swift de Coddy. Leçon 17 sur 56.

challenge icon

Défi

Moyen

Vous suivez l'inventaire d'un magasin. Lisez une seule ligne d'entrée : une liste d'opérations séparées par des virgules s'appliquant à un [String: Int] initialement vide nommé stock. Chaque opération est l'une des suivantes :

  • in:<item>:<qty> ajoute la quantité à l'article (utilisez le modèle d'indice par défaut)
  • out:<item>:<qty> soustrait la quantité. Si la quantité résultante est 0 ou négative, supprimez entièrement la clé.

Après avoir appliqué chaque opération, affichez :

  1. Une ligne par article restant, triée par ordre alphabétique, au format <item>: <qty>
  2. Total units: <n> pour l'ensemble des valeurs restantes

Pour l'entrée in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, la sortie est :

apple: 6
Total units: 6

Essayez vous-même

let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]

// TODO: analyser chaque op sous la forme type:article:quantité ; in ajoute, out soustrait ;
// supprimer les clés dont la quantité tombe à <= 0 ; afficher les lignes triées + le total

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Playground Swift