Menu
Coddy logo textTech

Ripasso - Inventario

Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 17 di 56.

challenge icon

Sfida

Medio

Stai monitorando l'inventario del negozio. Leggi una singola riga di input: un elenco di operazioni separate da virgole su un dizionario [String: Int] inizialmente vuoto chiamato stock. Ogni operazione è una delle seguenti:

  • in:<item>:<qty> aggiunge la quantità all'articolo (usa il modello con valore predefinito per il pedice)
  • out:<item>:<qty> sottrae la quantità. Se la quantità risultante è 0 o negativa, rimuovi completamente la chiave.

Dopo aver applicato ogni operazione, stampa:

  1. Una riga per ogni articolo rimanente, in ordine alfabetico, nel formato <item>: <qty>
  2. Total units: <n> sommando tutti i valori rimanenti

Per l'input in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, l'output è:

apple: 6
Total units: 6

Provalo tu

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

// TODO: interpreta ogni op come kind:item:qty; in aggiunge, out sottrae;
// rimuovi le chiavi il cui qty scende a <= 0; stampa le righe ordinate + il totale

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Swift