ตะกร้าสินค้า

📋 โจทย์

รับจำนวนรายการ N บรรทัดแรก N บรรทัดถัดมา แต่ละบรรทัดมี "ชื่อสินค้า ราคา จำนวน" คั่นเว้นวรรค ถ้าสินค้าชื่อเดียวกันซ้ำ ให้รวมจำนวน แสดงชื่อสินค้า จำนวนรวม ราคารวม เรียงตามชื่อ (a-z) บรรทัดละ 1 รายการ รูปแบบ "ชื่อ จำนวน ราคารวม"

⚠️ ข้อจำกัด

1 ≤ N ≤ 100 ราคา, จำนวน เป็นจำนวนเต็ม 1-10,000

📝 ตัวอย่าง

ตัวอย่างที่ 1
Input:
3
apple 10 2
banana 5 3
apple 10 1
Output:
apple 3 30
banana 3 15
ตัวอย่างที่ 2
Input:
2
pen 15 1
pen 15 2
Output:
pen 3 45
ตัวอย่างที่ 3
Input:
1
book 100 1
Output:
book 1 100
🔓 ดูเฉลย
n = int(input())
cart = {}
for _ in range(n):
    parts = input().split()
    name, price, qty = parts[0], int(parts[1]), int(parts[2])
    if name in cart:
        cart[name][0] += qty
        cart[name][1] += price * qty
    else:
        cart[name] = [qty, price * qty]
for name in sorted(cart):
    print(f"{name} {cart[name][0]} {cart[name][1]}")

💡 ใช้ dict เก็บ [จำนวนรวม, ราคารวม] ต่อสินค้า ถ้าซ้ำก็บวกเพิ่ม sorted() เรียงตามชื่อ

🐍 main.py

กด Run เพื่อรันโค้ด หรือ ตรวจคำตอบ เพื่อตรวจ test cases