요약 - 인벤토리
Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 17번째.
챌린지
중급상점의 재고를 추적하고 있습니다. 한 줄의 입력을 읽으십시오: 초기에는 비어 있는 [String: Int] 타입의 stock에 대한 쉼표로 구분된 작업 목록입니다. 각 작업은 다음 중 하나입니다:
in:<item>:<qty>해당 아이템의 수량을 추가합니다 (default-subscript 패턴을 사용하세요).out:<item>:<qty>수량을 뺍니다. 결과 수량이0또는 음수이면 해당 키를 완전히 제거합니다.
모든 작업을 적용한 후, 다음을 출력하십시오:
- 남아 있는 아이템당 한 줄씩, 알파벳 순으로 정렬하여
<item>: <qty>형식으로 출력합니다. - 모든 남은 값의 합계를
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 이하로 떨어지는 키는 제거합니다. 정렬된 행과 합계를 출력합니다.