Home / ใบงานที่ 3 - String & List

ใบงานที่ 3 - String & List

You are not logged in.

If you are a current student, please Log In for full access to this page.

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 ที่จะเรียนในสัปดาห์ถัด ๆ ไป