인벤토리 스냅샷
Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 55번째.
해시, Enumerable 체인, group_by, 그리고 약간의 포매팅을 활용하는 재고 보고서입니다.
챌린지
중급inventory 배열이 주어집니다. 각 항목은 :name, :category, :qty, :price를 키로 가지는 해시입니다.
다음 네 줄을 출력하세요:
- 모든 항목의 총 재고 가치(
qty * price의 합계)를 정수로 출력합니다. - 항목 수가 가장 많은 카테고리를
Top category: <name> (<count>)형식으로 출력합니다. 항목 수가 같을 경우 카테고리 이름의 알파벳 순으로 결정합니다. - 품절된 항목(
qty == 0)의 이름을 알파벳 순으로 정렬하여,로 연결해 출력합니다. 품절된 항목이 없으면(none)을 출력합니다. - 단가가 가장 높은 상위 3개 항목의 이름을 가격이 높은 순서대로
,로 연결해 출력합니다. 가격이 같을 경우 이름의 알파벳 순으로 결정합니다.
기본 inventory에 대한 출력 결과는 다음과 같습니다:
232
Top category: food (3)
milk
chair, lamp, milk직접 해보기
inventory = [
{ name: "apple", category: "food", qty: 10, price: 2 },
{ name: "bread", category: "food", qty: 4, price: 3 },
{ name: "milk", category: "food", qty: 0, price: 4 },
{ name: "chair", category: "furniture", qty: 2, price: 35 },
{ name: "lamp", category: "furniture", qty: 5, price: 20 },
{ name: "pencil", category: "stationery", qty: 30, price: 1 }
]
# TODO: 총 가치, 상위 카테고리, 품절된 품목 이름, 가격순 상위 3개 항목 출력
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.