Project Euler Problem #22

จากไฟล์ names.txt (คลิกขวาและ ‘Save Link/Target As…’) ซึ่งเป็นไฟล์ข้อความ (Text File) ขนาด 46K ที่บรรจุรายชื่อมากกว่าห้าพันรายชื่อ จงเรียงลำดับรายชื่อตามตัวอักษร จากนั้นคำนวณค่าตามตัวอักษรสำหรับชื่อแต่ละชื่อ แล้วคูณค่านี้กับลำดับรายชื่อในรายการ เพื่อให้ได้คะแนนของชื่อ

ตัวอย่างเช่น เมื่อเรียงลำดับรายชื่อตามตัวอักษรแล้ว COLIN ซึ่งมีค่า 3 + 15 + 12 + 9 + 14 = 53 จะอยู่ในลำดับที่ 938 ดังนั้น COLIN จะได้คะแนน 53 x 938 = 49714

คะแนนรวมของชื่อทั้งหมดในไฟล์คือเท่าไหร่?

(โจทย์นี้แปลมาจาก projecteuler.net สามารถเผยแพร่ภายใต้ลิขสิทธิ์ CC BY-NC-SA 2.0 UK )


Rain’s answer for #22

@Rain
ชัดเจน: 2/3 สร้างสรรค์: 1/3 กระชับ 2/3 ความเร็ว 2/3
Comment: ดีครับ จริงๆอีกอย่างที่ทำได้นะครับคือ for i in enumerate(name_list) และสำหรับ alphabet สามารถใช้ string. ascii_uppercase ได้เลยครับ อีกอย่างนะครับคือการหาค่า ASCII ลองพิมพ์แบบนี้ดูครับ int(‘A’) int(‘B’) แล้วจะสังเกตุ pattern