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 = 0free_from = float("-inf")for start, end in sorted(meetings, key=lambda m: m[1]):if start >= free_from:taken += 1free_from = endreturn taken
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.