Menu
Coddy logo textTech

Recapitulação - Inventário

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 17 de 56.

challenge icon

Desafio

Médio

Você está rastreando o inventário de uma loja. Leia uma única linha de entrada: uma lista separada por vírgulas de operações contra um [String: Int] inicialmente vazio chamado stock. Cada operação é uma das seguintes:

  • in:<item>:<qty> adiciona a quantidade ao item (use o padrão de subscrito com valor padrão)
  • out:<item>:<qty> subtrai a quantidade. Se a quantidade resultante for 0 ou negativa, remova a chave inteiramente.

Após aplicar cada operação, imprima:

  1. Uma linha por item restante, ordenado alfabeticamente, no formato <item>: <qty>
  2. Total units: <n> abrangendo cada valor restante

Para a entrada in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, o resultado é:

apple: 6
Total units: 6

Experimente você mesmo

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

// TODO: analisar cada op como tipo:item:qtd; in soma, out subtrai;
// remover chaves cuja qtd caia para <= 0; imprimir linhas ordenadas + total

Todas as lições de Lógica e Fluxo