Menu
Coddy logo textTech

아이템 추가하기

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 50번째.

challenge icon

챌린지

쉬움

세 개의 입력을 받게 됩니다. 첫 번째 입력은 품목 이름, 두 번째 입력은 품목의 가격, 세 번째 입력은 초기 재고 수량입니다. 키는 품목 이름이고 값은 가격과 수량을 포함하는 튜플 (f64, i32)인 인벤토리 데이터를 저장하기 위한 HashMap을 생성하세요. 인벤토리에 품목을 추가하고 확인 메시지와 현재 인벤토리 세부 정보를 출력하세요.

요구 사항:

  • std::collections에서 HashMap을 가져옵니다.
  • 첫 번째 입력(품목 이름)을 읽고 공백을 제거합니다.
  • 두 번째 입력(가격)을 읽고 공백을 제거합니다.
  • 가격을 f64로 파싱합니다.
  • 세 번째 입력(수량)을 읽고 공백을 제거합니다.
  • 수량을 i32로 파싱합니다.
  • 인벤토리를 위한 가변(mutable) HashMap<String, (f64, i32)>를 생성합니다.
  • 가격과 수량을 튜플로 하여 품목을 인벤토리에 삽입합니다.
  • 출력: Added [item_name] to inventory
  • 출력: Price: $[price]
  • 출력: Quantity: [quantity]

입력:

  • 첫 번째 줄: 품목 이름 (예: Laptop)
  • 두 번째 줄: 숫자로 된 가격 (예: 999.99)
  • 세 번째 줄: 숫자로 된 수량 (예: 15)

출력:

  • 첫 번째 줄: Added [item_name] to inventory
  • 두 번째 줄: Price: $[price]
  • 세 번째 줄: Quantity: [quantity]

직접 해보기

use std::collections::HashMap;
use std::io;

fn main() {
    // 품목 이름 읽기
    let mut item_name = String::new();
    io::stdin().read_line(&mut item_name).expect("Failed to read line");
    let item_name = item_name.trim().to_string();
    
    // 가격 읽기
    let mut price_input = String::new();
    io::stdin().read_line(&mut price_input).expect("Failed to read line");
    let price: f64 = price_input.trim().parse().expect("Failed to parse price");
    
    // 수량 읽기
    let mut quantity_input = String::new();
    io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
    let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
    
    // TODO: 아래에 코드를 작성하세요
    // 재고를 저장할 HashMap 생성
    // 재고에 품목 추가
    // 확인 메시지 출력
    
}

Logic & Flow의 모든 레슨