Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาคะแนนรองอันดับหนึ่ง (Runner-up Score) ใน Python

สมมติว่าเรามีลิสต์คะแนนของผู้เข้าแข่งขัน ต้องหาคะแนนรองอันดับหนึ่ง (Runner-up) คือค่าที่ใหญ่เป็นอันดับ 2

ตัวอย่าง scores = [5,8,2,6,8,5,8,7] ผลลัพธ์ = 7 เพราะคะแนนสูงสุดคือ 8 คะแนนอันดับ 2 คือ 7

ขั้นตอนการแก้ปัญหา

  • winner := -99999, runner_up := -99999
  • สำหรับแต่ละ i ใน scores:
    • ถ้า i > winner: winner, runner_up = i, winner
    • ถ้า i < winner และ i > runner_up: runner_up = i
  • คืนค่า runner_up

ตัวอย่างโค้ด

def solve(scores):
    winner = -99999
    runner_up = -99999
    for i in scores:
        if i > winner:
            winner, runner_up = i, winner
        elif i < winner and i > runner_up:
            runner_up = i
    return runner_up

scores = [5,8,2,6,8,5,8,7]
print(solve(scores))

อินพุต

[5,8,2,6,8,5,8,7]

เอาต์พุต

7