Özet - Liderlik Tablosu
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 32 / 56.
Görev
OrtaBir liderlik tablosu oluşturuyorsunuz. Tek bir satır girdi okuyun: virgülle ayrılmış name:score girişlerinden oluşan bir liste. Bazı girişlerin puanı tam sayı değildir ve bunlar atlanmalıdır (compactMap kullanın).
En yüksek puana sahip ilk üç oyuncuyu puan azalan sırada, her satıra bir tane gelecek şekilde şu formatta yazdırın:
<rank>. <name> - <score>Sıralamalar 1'den başlar. Eşitlik durumunda isimleri alfabetik olarak sıralayın. Üçten az geçerli giriş varsa, hepsini yazdırın.
Liderlik tablosundan sonra, her geçerli puanın tam sayı ortalamasını (sıfıra doğru yuvarlayın, ondalık basamak olmasın) Avg: <n> formatında yazdırın. Hiç geçerli giriş yoksa, Avg: 0 yazdırın.
alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 girdisi için çıktı şöyledir:
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86Kendin dene
let entries = readLine()!.components(separatedBy: ",")
// YAPILACAK: (isim, puan) şeklinde compactMap yap; puana göre azalan, eşitlik durumunda isme göre sırala;
// ilk 3'ü yazdır; ardından tüm geçerli puanların ortalamasını al
Mantık ve Akış bölümündeki tüm dersler
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleri3Sözlükler
Sözlük Tanımlamaİsteğe Bağlı AramaSözlükleri GüncellemeSözlükleri YinelemeDeğerleri GruplandırmaÖzet - Envanter6Yüksek Seviyeli Fonksiyonlar Pt. 2
compactMapflatMapsorted(by:)İşlem Hatları OluşturmaÖzet - Liderlik Tablosu