Menu
Coddy logo textTech

재고 확인

Coddy C++ 여정의 로직과 흐름 섹션에 포함된 레슨 — 56개 중 32번째.

challenge icon

챌린지

쉬움

특정 품목의 현재 재고 수준을 확인하는 기능을 구현하여 인벤토리 추적 시스템 구축을 계속해 보세요. 이 레슨에서는 맵(map)에서 품목 정보를 안전하게 조회하고, 인벤토리에 품목이 존재하지 않는 경우를 처리하는 방법을 보여줍니다.

다음과 같은 입력이 제공됩니다:

  • 수행할 재고 조회 횟수를 나타내는 정수 n
  • 조회할 품목 이름을 나타내는 n개의 문자열

프로그램은 다음을 수행해야 합니다:

  1. 다음의 초기 인벤토리로 시작합니다:
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    inventory["grapes"] = 40;
  2. 재고 조회 횟수를 읽습니다.
  3. 각 조회에 대해 품목 이름을 읽습니다.
  4. .count() 메서드를 사용하여 인벤토리 맵에 해당 품목이 존재하는지 확인합니다.
  5. 품목이 존재하면 현재 재고 수량을 출력합니다.
  6. 품목이 존재하지 않으면 찾을 수 없다는 메시지를 출력합니다.
  7. 모든 조회가 끝난 후, 현재 인벤토리에 있는 서로 다른 품목의 총 개수에 대한 요약을 출력합니다.

다음의 정확한 출력 형식을 사용하세요:

각 재고 조회 시:

[item_name]: [quantity] in stock

품목을 찾을 수 없는 경우:

[item_name]: Item not found

마지막 요약:

Total items in inventory: [number_of_items]

값에 접근하기 전에 .count() 메서드를 사용하여 각 품목이 존재하는지 안전하게 확인하세요. 만약 inventory.count(itemName)이 1을 반환하면 품목이 존재하는 것이며, inventory[itemName]에 안전하게 접근하여 수량을 가져올 수 있습니다. 0을 반환하면 품목이 존재하지 않는 것입니다. 최종 요약을 위해 맵의 .size() 메서드를 사용하여 인벤토리에 있는 서로 다른 품목의 총 개수를 구하세요.

직접 해보기

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Initialize the inventory with existing items
    map<string, int> inventory;
    inventory["apples"] = 50;
    inventory["bananas"] = 30;
    inventory["oranges"] = 25;
    
    int n;
    cin >> n;
    
    for (int i = 0; i < n; i++) {
        string itemName;
        int quantity;
        cin >> itemName >> quantity;
        
        inventory[itemName] += quantity;
        
        cout << "Added " << quantity << " " << itemName << ". New total: " << inventory[itemName] << endl;
    }
    
    cout << "Final Inventory:" << endl;
    for (const auto& item : inventory) {
        cout << item.first << ": " << item.second << endl;
    }
    
    return 0;
}

로직과 흐름의 모든 레슨