ใบงานที่ 3 - String & List
1) โจทย์ (8 คะแนน)
ในการแข่งขัน International Student STEM Challenge (ISSC)
มีผู้เข้าแข่งขันจากทั่วโลกรวมทั้งสิ้น N ทีม ในการแข่งขันนั้นแต่ละทีมจะได้รับการประเมินจากคณะกรรมการ 3
คน โดยคะแนนประเมินเป็นเลขจำนวนเต็มตั้งแต่ 0 - 100 คะแนน ถูกจัดเก็บอยู่ในรูปของ list of
strings
โดยมีรูปแบบดังตัวอย่าง
x = ['50,45,60', '80,75,85']
จากตัวอย่างลิสต์ x
จะได้ว่า มีผู้เข้าแข่งขันทั้งสิ้น 2 ทีม โดย
ทีมที่ 1
- กรรมการคนที่ 1 ให้คะแนน 50 คะแนน
- กรรมการคนที่ 2 ให้คะแนน 45 คะแนน
- กรรมการคนที่ 3 ให้คะแนน 60 คะแนน
ทีมที่ 2
- กรรมการคนที่ 1 ให้คะแนน 80 คะแนน
- กรรมการคนที่ 2 ให้คะแนน 75 คะแนน
- กรรมการคนที่ 3 ให้คะแนน 85 คะแนน
ทั้งนี้ คะแนนสุดท้ายที่แต่ละทีมจะได้รับนั้น จะมาจากการหาค่าเฉลี่ยของคะแนนของกรรมการทั้ง 3 คน (แล้วตัดเศษทิ้ง) เช่น ทีมที่ 1 ได้รับคะแนนจากกรรมการคนที่ 1,2,3 เป็น 50, 45, 60 ตามลำดับ คะแนนที่ทีมที่ 1 นี้จะได้รับคือ (50+45+60)/3 = 51.666666... ซึ่งเมื่อตัดเศษทิ้งแล้วจะได้คะแนนสุดท้ายเป็น 51 คะแนน
จงเขียนฟังก์ชัน issc
เพื่อหาหมายเลขทีมที่ได้รับรางวัลชนะเลิศและคะแนนที่ได้รับ โดยกำหนดให้
- ทีมหมายเลข 1 คือทีมที่รับข้อมูลเข้ามาเป็นลำดับแรก และทีมที่ 2, 3, ... คือทีมที่รับข้อมูลเข้ามาเป็นลำดับถัด ๆ ไป
- รับประกันว่าผลลัพธ์จากข้อมูลนำเข้าที่กำหนดให้ จะมีเพียงทีมเดียวเท่านั้นที่ได้รับรางวัลชนะเลิศ
ตัวอย่างการเรียกใช้ฟังก์ชัน issc
โดยมีผู้เข้าร่วมแข่งขันทั้งสิ้น 5 ทีม
x = ['60,50,55', '80,75,85', '50,65,60', '85,80,79', '60,75,62']
print(issc(x))
ซึ่งผลลัพธ์ที่ควรได้ คือ
(4, 81)
ซึ่งหมายถึง ทีมที่ 4 ชนะเลิศ โดยได้รับคะแนน 81 คะแนน
Hint
- ใช้
str.split(',')
เช่น"a,b,c".split(",")
จะได้["a","b","c"]
return (a, b)
ได้ เป็นเนื้อหาส่วนtuple
ที่จะเรียนในสัปดาห์ถัด ๆ ไป