Z03
Kullanıcı Kümeleri
Teknik Tanım & Görev
Bir güvenlik ekibi, sahte hesapları tespit etmek için giriş kayıtlarını inceliyor. Her kayıt (kullanıcı adı, cihaz kimliği) ikilisinden oluşuyor.
Kural şu: AYNI CİHAZI kullanan iki kullanıcı büyük olasılıkla aynı kişidir ve aynı KÜMEYE konur. Bir kullanıcı birden fazla cihaz kullanabilir; bu durumda o kullanıcının tüm cihazları, o cihazları paylaşan TÜM kullanıcıları tek bir kümede BİRLEŞTİRİR. Yani ilişki GEÇİŞLİDİR.
Kayıtlar verildiğinde, oluşan kümelerin BOYUTLARINI (kümedeki BENZERSİZ kullanıcı sayısı) AZALAN SIRADA bir dizi olarak döndür.
Fonksiyon İmzası (Python)
kume_boyutlari(kayitlar: list[list[str]]) -> list[int]Girdi ve Çıktı Sözleşmesi
Çıktı Kuralı:Azalan sırada sıralanmış küme boyutları. Boş kayıt listesi için [].
Sistem Kısıtları (Constraints)
0 <= kayitlar.length <= 10^5
kullanıcı adı ve cihaz kimliği boş olmayan ASCII metinler
AYNI (kullanıcı, cihaz) ikilisi birden fazla kez gelebilirÖrnek Yürütme Analizi
kayitlar = [["ali","d1"], ["zeynep","d1"], ["mert","d2"], ["can","d2"], ["cem","d3"], ["ali","d3"]]
küme A = {ali, zeynep, cem} boyut 3
küme B = {mert, can} boyut 2
cevap: [3, 2]Örnek Test Senaryoları (3)
Örnek 1
Girdi:
[[["ali","d1"],["zeynep","d1"],["mert","d2"],["can","d2"],["cem","d3"],["ali","d3"]]]Beklenen Çıktı:
[3,2]Örnek 2: İki Ayrık Kullanıcı
Girdi:
[[["u1","c1"],["u2","c2"]]]Beklenen Çıktı:
[1,1]Örnek 3: Cihaz Üzerinden Birleşme
Girdi:
[[["u1","c1"],["u1","c2"],["u2","c2"]]]Beklenen Çıktı:
[2]