Menu
Coddy logo textTech

Итоги — Инвентарь

Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 17 из 56.

challenge icon

Задание

Средне

Вы отслеживаете инвентарь магазина. Прочитайте одну строку ввода: список операций через запятую для изначально пустого словаря [String: Int] под названием stock. Каждая операция имеет один из следующих форматов:

  • in:<item>:<qty> добавить количество к товару (используйте паттерн сабскрипта с дефолтным значением)
  • out:<item>:<qty> вычесть количество. Если итоговое количество равно 0 или меньше, полностью удалите ключ.

После применения всех операций выведите:

  1. По одной строке для каждого оставшегося товара, отсортированных по алфавиту, в формате <item>: <qty>
  2. Total units: <n> — общая сумма всех оставшихся значений

Для входных данных in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 выводом будет:

apple: 6
Total units: 6

Попробуйте сами

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

// TODO: разобрать каждую операцию в формате kind:item:qty; in прибавляет, out вычитает;
// удалить ключи, количество которых падает до <= 0; вывести отсортированные строки + итог

Все уроки раздела Логика и управление потоком