บทนำและเครดิต
สมมติว่าคุณเป็นบาร์เทนเดอร์ คุณมีคนที่มีความสุขมากมายในบาร์ของคุณในเวลาส่วนใหญ่ แต่หลายคนเคยดื่มเครื่องดื่มเดียวกันและน้อยเกินไปสำหรับรสนิยมของคุณและคุณต้องการที่จะเปลี่ยน ดังนั้นคุณแนะนำระบบที่ราคาของเครื่องดื่มแปรผันขึ้นอยู่กับจำนวนที่ขายไปแล้ว แต่ไม่เคยแพงหรือน้อยกว่าเกณฑ์ที่กำหนด ด้วยเหตุผลแปลก ๆ บางอย่างคุณลืมที่จะติดตามเครื่องดื่มและราคาขายที่ถูกต้องเสมอและดังนั้นคุณต้องคิดถึงรหัส (= จดจำ!) สั้น ๆ ที่จะช่วยคุณคำนวณปริมาณเครื่องดื่ม
ความท้าทายนี้ปรากฏในการสอบกลางภาคในปี 2012 ที่หลักสูตรการเขียนโปรแกรมการทำงานที่มหาวิทยาลัยของฉันและฉันก็มีอาจารย์ของฉันตกลงที่จะโพสต์ที่นี่ เราได้จัดทำโซลูชันตัวอย่างในภาษาของการสอบ
อินพุต
ข้อมูลที่คุณป้อนจะเป็นรายการสตริงที่ไม่มีช่องว่าง - นี่คือชื่อของเครื่องดื่มที่ขาย รับอินพุตโดยใช้วิธีการป้อนข้อมูลที่คุณต้องการยอมรับโดยทั่วไป
เอาท์พุต
ผลลัพธ์ของคุณจะเป็นตัวเลขเดียว - นี่คือรายได้ที่คุณสร้างขึ้นในเย็นนี้ ให้การส่งออกโดยใช้ที่ต้องการของคุณวิธีการส่งออกได้รับการยอมรับโดยทั่วไป
จะทำอย่างไร?
สิ่งนี้ใช้สำหรับเครื่องดื่มแต่ละรายการ:
- ราคาเริ่มต้นคือ 10
- ทุกครั้งที่ซื้อเครื่องดื่มราคาของมันจะเพิ่มขึ้น 1 ต่อผู้ซื้อรายต่อไป
- ราคาสูงสุดคือ 50 หากเครื่องดื่มซื้อ 50 ราคาใหม่จะเป็น 10 อีกครั้ง
งานของคุณคือการหารายได้โดยรวมที่สร้างขึ้นจากรายการเครื่องดื่มตามกฎข้างต้น
ในกรณีที่คุณสงสัยว่า: "50 bucks แพงมากสำหรับเครื่องดื่ม!" นี่คือ 50-deci Bucks ดังนั้นหน่วย 50 * 0.1 * แต่ฉันเลือกที่จะไป 10-50 เพื่อไม่รวมภาษาโดยไม่ต้อง เลขทศนิยม
ใครชนะ?
นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ! ใช้กฎมาตรฐาน
กรณีมุมที่อาจเป็นไปได้
หากรายการอินพุตว่างเปล่าผลลัพธ์จะเป็น 0
รายการอินพุตไม่สามารถสันนิษฐานได้ว่าจะเรียงลำดับตามเครื่องดื่ม
ตัวอย่าง
[] -> 0
["A"] -> 10
["A","B"] -> 20
["A","A","B"] -> 31
["A","B","A"] -> 31
["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A"] -> 1240
["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","C","C","D"] -> 1304
["D","A","A","C","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","C"] -> 1304
["A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","B","B","B","C","C","D","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A","A"] -> 1304