재고 제거
Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 33번째.
챌린지
쉬움기존 품목에서 재고를 차감하는 기능을 구현하여 인벤토리 추적 시스템을 완성하세요. 이 레슨에서는 재고 수준이 0 미만으로 내려가는 것을 방지하고 인벤토리에 존재하지 않는 품목을 처리하면서 안전하게 재고 수량을 줄이는 방법을 보여줍니다.
다음의 초기 인벤토리로 시작하세요:
apples: 50bananas: 30oranges: 25
다음 입력이 제공됩니다:
- 수행할 재고 차감 작업의 횟수를 나타내는 정수
n - 그 다음
n개의 입력 쌍:- 품목 이름을 나타내는 문자열
- 차감할 수량을 나타내는 정수
프로그램은 다음을 수행해야 합니다:
- 위에 나열된 초기 인벤토리로 시작합니다.
- 재고 차감 작업의 횟수를 읽습니다.
- 각 작업에 대해 품목 이름과 차감할 수량을 읽습니다.
.count()메서드를 사용하여 인벤토리 맵에 해당 품목이 존재하는지 확인합니다.- 품목이 존재하지 않으면 에러 메시지를 출력합니다.
- 품목이 존재하면, 수량을 차감했을 때 재고가 음수가 되는지 확인합니다.
- 차감 결과가 음수 재고가 될 경우, 에러 메시지를 출력합니다.
- 차감이 유효하면 현재 재고에서 수량을 빼고 확인 메시지를 출력합니다.
- 모든 작업이 끝난 후, 모든 품목과 업데이트된 수량을 보여주는 최종 인벤토리를 출력합니다.
다음의 정확한 출력 형식을 사용하세요:
재고 차감 성공 시:
Removed [quantity] [item_name]. New total: [new_total]품목을 찾지 못했을 시:
Error: [item_name] not found in inventory재고가 부족할 시:
Error: Cannot remove [quantity] [item_name]. Only [current_stock] in stock최종 인벤토리:
Final Inventory:
[item1]: [quantity1]
[item2]: [quantity2]
[item3]: [quantity3]
...최종 인벤토리는 품목 이름의 알파벳 순서대로 출력되어야 합니다. 재고 차감을 시도하기 전에 inventory.count(itemName)을 사용하여 품목이 존재하는지 확인하세요. 품목이 존재하고 현재 재고가 차감하려는 수량보다 크거나 같을 때만 인벤토리에서 차감하세요. 기존 재고에서 수량을 빼려면 inventory[itemName] -= quantity를 사용하세요.
직접 해보기
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// Initialize inventory with existing items
map<string, int> inventory;
inventory["apples"] = 50;
inventory["bananas"] = 30;
inventory["oranges"] = 25;
inventory["grapes"] = 40;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
string itemName;
cin >> itemName;
if (inventory.count(itemName)) {
cout << itemName << ": " << inventory[itemName] << " in stock" << endl;
} else {
cout << itemName << ": Item not found" << endl;
}
}
cout << "Total items in inventory: " << inventory.size() << endl;
return 0;
}