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