Menu
Coddy logo textTech

요약 - 인벤토리

Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 17번째.

challenge icon

챌린지

중급

상점의 재고를 추적하고 있습니다. 한 줄의 입력을 읽으십시오: 초기에는 비어 있는 [String: Int] 타입의 stock에 대한 쉼표로 구분된 작업 목록입니다. 각 작업은 다음 중 하나입니다:

  • in:<item>:<qty> 해당 아이템의 수량을 추가합니다 (default-subscript 패턴을 사용하세요).
  • 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 형식으로 파싱합니다. adds는 더하고, out은 뺍니다.
// 수량이 0 이하로 떨어지는 키는 제거합니다. 정렬된 행과 합계를 출력합니다.

로직 및 흐름의 모든 레슨