Menu
Coddy logo textTech

まとめ - 在庫管理

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 17/56。

challenge icon

チャレンジ

中級

店舗の在庫を追跡しています。1行の入力を読み取ってください。これは、最初は空の [String: Int] 型の stock に対する、カンマ区切りの操作リストです。各操作は以下のいずれかです:

  • in:<item>:<qty> アイテムに数量を加算します(デフォルト値付きサブスクリプトのパターンを使用してください)。
  • out:<item>:<qty> 数量を減算します。結果の数量が 0 または負になった場合は、そのキーを完全に削除してください。

すべての操作を適用した後、以下を出力してください:

  1. 残っているアイテムごとに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 として解析する。add は加算、out は減算。
// 数量が 0 以下になったキーは削除し、ソートされた行と合計を出力する。

ロジックとフローのすべてのレッスン