Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya içinde gülücük olan/olmayan yüz ifadeleri dizisi (yuzler) veriliyor. Önce gözler, sonra burun ve son olarak ağız kısmından oluşacak yüz ifadesi kurallar ise;

    -Her yüz : veya ; olarak ifade edilen gözlere sahip olmalı, -Her burun - veya ~ veya olarak ifade edilen buruna sahip olmalı (yüz ifadesinde burun olmayadabilir), -Her ağız ifadesi ) veya D olarak ifade edilen ağıza sahip olmalı.

    Programcıdan ise yukarıdaki kurallara uygun olan kaç adet yüz ifadesinin bulması isteniyor.

    Örnek

    Girdi Çıktı
    yuzler: {“:)”, “;(“, “;}”, “:-D”} Sonuç: 2
    yuzler: {“:D”, “:~)”, “;~D”, “:)”} Sonuç: 4

    Çözüm - C#

    using System;
     
    class Program
    {
        static void Main()
        {
            string[] yuzler = new string[] {":D", ":~)", ";~D", ":)"};
            int sayac = 0;
     
            // Her bir yüzü tek tek incele
            foreach (string yuz in yuzler)
            {
                // Her bir dizi bileşeninin uzunluğuna göre değerlendirme yap
                switch (yuz.Length)
                {
                    // İncelenen değerin uzunluğu 3 ise
                    case 3:
                        // Her 3 karakteri sırası ile incele
                        if (yuz.Substring(0, 1) == ":" || yuz.Substring(0, 1) == ";")
                        {
                            if (yuz.Substring(1, 1) == "-" || yuz.Substring(1, 1) == "~" || yuz.Substring(1, 1) == "")
                            {
                                if (yuz.Substring(2, 1) == ")" || yuz.Substring(2, 1) == "D")
                                    sayac++;
                            }
                        }
                        
                        break;
                    // İncelenen değerin uzunluğu 2 ise
                    case 2:
                        // Her 3 karakteri sırası ile incele
                        if (yuz.Substring(0, 1) == ":" || yuz.Substring(0, 1) == ";")
                        {
                            if (yuz.Substring(1, 1) == ")" || yuz.Substring(1, 1) == "D")
                                sayac++;
                        }
     
                        break;
                }
            }
     
            Console.WriteLine(sayac);
     
            Console.Read();
        }
    }
    

    Çözüm - Java

    public class Main {
     
        public static void main(String[] args)
        {
            String[] yuzler = new String[] {":D", ":~)", ";~D", ":)"};
            int sayac = 0;
     
            // Her bir yüzü tek tek incele
            for (String yuz: yuzler)
            {
                // Her bir dizi bileşeninin uzunluğuna göre değerlendirme yap
                switch (yuz.length())
                {
                    // İncelenen değerin uzunluğu 3 ise
                    case 3:
                        // Her 3 karakteri sırası ile incele
                        if (yuz.substring(0, 1).equals(":") || yuz.substring(0, 1).equals(";"))
                        {
                            if (yuz.substring(1, 1).equals("-") || yuz.substring(1, 1).equals("~") || yuz.substring(1, 1).equals(""))
                            {
                                if (yuz.substring(2).equals(")") || yuz.substring(2).equals("D"))
                                    sayac++;
                            }
                        }
     
                        break;
                    // İncelenen değerin uzunluğu 2 ise
                    case 2:
                        // Her 3 karakteri sırası ile incele
                        if (yuz.substring(0, 1).equals(":") || yuz.substring(0, 1).equals(";"))
                        {
                            if (yuz.substring(1).equals(")") || yuz.substring(1).equals("D"))
                                sayac++;
                        }
     
                        break;
                }
            }
     
            System.out.println(sayac);
        }
    }