สมมติว่าเราขายสินค้า 4 ชนิด ราคาของสินค้าชิ้นที่ i กำหนดในอาร์เรย์ 'cost[i]' เราขายสินค้าตามลำดับในสตริง 'items' เราต้องหายอดขายรวม สตริง 'items' มีตัวเลข 1 ถึง 4 อาจซ้ำและเรียงลำดับอย่างไรก็ได้
เช่น ถ้าค่าที่ป้อนเข้าเป็น cost = {10, 15, 10, 5}, items = "14214331" ผลลัพธ์จะได้ 75
ขั้นตอนการแก้ปัญหา
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
total := 0 สำหรับ i := 0 เมื่อ i < ขนาดของ items เพิ่ม i ทีละ 1 ทำ: total := total + cost[items[i] - '0' - 1] คืนค่า total
ตัวอย่างโค้ด
ดูการนำไปใช้จริงด้านล่างเพื่อความเข้าใจที่ดียิ่งขึ้น:
#include <bits/stdc++.h> using namespace std; #define N 100 int solve(int cost[], string items) { int total = 0; for(int i = 0; i < items.size(); i++) total += cost[items[i] -'0' - 1]; return total; } int main() { int cost[] = {10, 15, 10, 5}; string items = "14214331"; cout<< solve(cost, items); return 0; }
ข้อมูลนำเข้า
{10, 15, 10, 5}, "14214331"
ข้อมูลส่งออก
75