Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya dağınık bir şekilde verilen yaş dizisi (yaslar) veriliyor. Sonrasında ise dizi içindeki en yüksek iki yaşı döndürülmesi gerektiği belirtiliyor.

    Dizinin her zaman en az 2 öğe içereceği ifade edilirken, sonuç olarak gösterilen yaşların [en büyük ikinci yaş, en büyük yaş] şeklide görüntülenmesi isteniyor.

    Örnek

    Girdi Çıktı
    [1, 2, 10, 8] [8, 10]
    [1, 3, 10, 0] [3, 10]
    [1, 5, 87, 45, 8, 8, 5] [45, 87]

    Çözüm - C#

    using System;
    
    class Program
    {
        public static void Main()
        {
            var yaslar = new[] { 1, 64, 5, 42, 25, 33, 8, 11 };
    
            // Linq ile hayat daha kolay!
            var sonuc = yaslar
                .OrderByDescending(i => i) // Büyükten küçüğe sırala
                .Take(2) // İlk iki değeri al
                .Reverse(); // Değerleri ters çevir
    
            Console.WriteLine(string.Join(" ", sonuc));
    
            Console.Read();
        }
    }
    

    Çözüm - Python

    import itertools
    
    yaslar = [1, 64, 5, 42, 25, 33, 8, 11]
    
    ters_sirali_liste = sorted(yaslar, reverse=True)
    en_buyuk_iki_sayiyi_al = list((itertools.islice(ters_sirali_liste, 2)))
    sirala = sorted(en_buyuk_iki_sayiyi_al)
    
    sonuc = " ".join(map(str, sirala))
    print(sonuc)