İçeriğe atla
CodeItRaw
Açgözlü & Aralıklar

Ders 4/4

Tek bir odaya en çok kaç toplantı sığar? Akla gelen kurallar yanılır: "önce başlayanı al" uzun bir toplantıyla bütün günü kapatabilir; "en kısayı al" iki uzun toplantının tam ortasına düşen kısa bir toplantıyla ikisini de harcayabilir. Tutan kural: en erken biteni al. Erken biten toplantı, geriye en çok zamanı bırakır.

taken = 0
free_from = float("-inf")
for start, end in sorted(meetings, key=lambda m: m[1]):
if start >= free_from:
taken += 1
free_from = end
return taken
Bitişe göre sırala; oda boşaldıktan sonra (ya da tam o anda) başlayan ilk toplantıyı al. Sıralama anahtarının bitiş olduğuna dikkat et: aralıkları birleştirirken başlangıca göre sıralamıştın, burada sıralama ölçütü farklıdır.

Soru "hepsi yapılacak, kaç oda gerekir?" olursa fikir değişir: artık toplantı elemiyorsun, aynı anda kaç toplantının sürdüğünü sayıyorsun. Başlangıçları ve bitişleri ayrı ayrı sırala, günü baştan sona yürü: başlangıçta bir oda al, bitişte bir oda bırak; aynı anda tutulan en çok oda cevaptır.

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    Toplantı Seçimi

    Kod Okuma · Çıktıyı Tahmin Et

  2. 02

    En Çok Toplantı

    Fonksiyon

  3. 03

    Toplantı Odaları

    Fonksiyon

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi