Menu
Coddy logo textTech

סיכום – לוח מובילים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 32 מתוך 56.

challenge icon

אתגר

בינוני

אתם יוצרים טבלת דירוג. קראו שורת קלט אחת: רשימה מופרדת בפסיקים של רשומות name:score. לחלק מהרשומות יש ציון שאינו מספר שלם, ויש לדלג עליהן (השתמשו ב־compactMap).

הדפיסו את שלושת השחקנים המובילים לפי ציון בסדר יורד, אחד בכל שורה, בפורמט:

<rank>. <name> - <score>

הדירוגים מתחילים ב־1. במקרה של תיקו, הכריעו לפי השם בסדר אלפביתי. אם יש פחות משלוש רשומות תקינות, הדפיסו את כולן.

אחרי טבלת הדירוג, הדפיסו Avg: <n> עם הממוצע השלם של כל הציונים התקינים (עיגול כלפי אפס, ללא ספרות עשרוניות). כשאין רשומות תקינות, הדפיסו Avg: 0.

עבור הקלט alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, הפלט הוא:

1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86

נסו בעצמכם

let entries = readLine()!.components(separatedBy: ",")

// TODO: להשתמש ב-compactMap כדי ליצור (name, score); למיין לפי score בסדר יורד, ובמקרה של שוויון לפי name;
// להדפיס את 3 הראשונים; ואז את הממוצע של כל ערכי score התקינים

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: Swift אונליין