O03
En Değerli Müşteriler
Teknik Tanım & Görev
Bir e-ticaret sitesinin sipariş kayıtları, (müşteri adı, sipariş tutarı) ikilileri hâlinde tutuluyor. Aynı müşteri birden fazla sipariş vermiş olabilir; o müşterinin DEĞERİ, tüm sipariş tutarlarının TOPLAMIdır.
Pazarlama ekibi en değerli k müşterisini bir kampanyaya dahil etmek istiyor. Müşterileri toplam tutarlarına göre AZALAN sırada diz. TOPLAM TUTARI EŞİT olan müşteriler arasında ise alfabetik olarak ÖNCE GELEN önce yazılsın. Bu sıralamadaki İLK k müşterinin adını dizi olarak döndür.
Fonksiyon İmzası (Python)
en_degerli_musteriler(siparisler: list, k: int) -> list[str]Girdi ve Çıktı Sözleşmesi
Çıktı Kuralı:En fazla k elemanlı string dizisi. Müşteri sayısı k'dan azsa TÜM müşteriler döner. Sipariş listesi boşsa [].
Sistem Kısıtları (Constraints)
0 <= siparisler.length <= 10^5
1 <= k <= 10^3
tutarlar pozitif tam sayı
müşteri adları küçük ASCII harfÖrnek Yürütme Analizi
siparisler = [["ali",100], ["zeynep",300], ["ali",250], ["mert",300], ["can",50]]
toplamlar: ali=350, zeynep=300, mert=300, can=50
azalan tutar: ali(350), sonra zeynep(300) ve mert(300) EŞİT -> alfabetik: mert, zeynep
k=3 -> cevap: ["ali", "mert", "zeynep"]Örnek Test Senaryoları (3)
Örnek 1
Girdi:
[[["ali",100],["zeynep",300],["ali",250],["mert",300],["can",50]],3]Beklenen Çıktı:
["ali","mert","zeynep"]Örnek 2: İki Müşteri Toplamı
Girdi:
[[["kerem",500],["asli",400],["kerem",100]],2]Beklenen Çıktı:
["kerem","asli"]Örnek 3: Eşit Tutar Alfabetik Sıra
Girdi:
[[["ali",50],["veli",50]],1]Beklenen Çıktı:
["ali"]