Menu
Coddy logo textTech

Podsumowanie – inwentarz

Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 17 z 56.

challenge icon

Wyzwanie

Średni

Śledzisz stan magazynowy sklepu. Wczytaj jeden wiersz danych wejściowych: oddzieloną przecinkami listę operacji na początkowo pustym słowniku [String: Int] o nazwie stock. Każda operacja ma jedną z postaci:

  • in:<item>:<qty> dodaj ilość do produktu (użyj wzorca z wartością domyślną przy indeksowaniu)
  • out:<item>:<qty> odejmij ilość. Jeśli wynikowa ilość wynosi 0 lub jest ujemna, usuń klucz całkowicie.

Po zastosowaniu każdej operacji wypisz:

  1. Osobny wiersz dla każdego pozostałego produktu, posortowanego alfabetycznie, w formacie <item>: <qty>
  2. Total units: <n> dla wszystkich pozostałych wartości

Dla danych wejściowych in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 wynikiem jest:

apple: 6
Total units: 6

Spróbuj swoich sił

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

// TODO: przetwórz każde op w formacie kind:item:qty; in dodaje, out odejmuje;
// usuń klucze, dla których qty spada do <= 0; wypisz posortowane wiersze + sumę

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Edytor online Swift