Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Fırat Üniversitesi öğrenci topluluğu olan ACM (Association for Computing Machinery)‘nin düzenlediği Code Night (Kod Gecesi) / 2019 (Bahar Dönemi) etkinliğine “Cyb3rPsych0” ekibi olarak 3 arkadaş katılım gerçekleştirdik. Geçen seferkinden farklı olarak ekibimizin isminde bir değişikliğe gitme kararı aldık :). Ekibimizde bilgisayar mühendisliği 1. sınıf arkadaşımız yerine çok yakın akraba olduğum fakat 19 yıl sonra ilk defa Elazığda görüştüğüm yazılım mühendisliği 1. sınıftan Cemal Tiryaki arkadaşımız vardı 🙂 , liseden arkadaşım olan O. Feyyaz Onur zaaten ekipten 🙂 .

Etkinlikten bahsedecek olursak saat 00:00 da başladı, yaklaşık 01:30’a kadar okulumuzun değerli öğretmenlerinden olan Fatih Özkaynak konuşmasını gerçekleştirdi daha sonra sistem kullanıcılara açıldı ve herkes ekibiyle birlikte algoritma sorularını sabah 06:00 ya kadar çözmeye çalıştı ben bu yazımda soruları paylaşacağım. Çözebildiklerimizi nasıl bir çözüm yolu izleyerek çözdüğümüzü anlatacağım.

Çözebildiklerimiz

Pİ’nin İlk 100 Hanesi

p1 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Başlıktan da anlaşılabildiği gibi soruda bizden Pİ sayısının ilk 100 hanesini istiyordu. Bu soruda Pİ formüllerine yada Pİ sayısının ne olduğuna girmeye hiç gerek kalmadan (Başta formüllere bakıp koda dökmeye çalıştık işin içinden çıkamayınca 🙂 ) KISS (Keep It Simple Stupid) metodu ile çok rahatça çözdük. Soruyu karmaşıklaştırmaya hiç gerek yok, basit düşün 🙂 internetten Pİ sayısının ilk 100 hanesini bulduk ve ekrana yazı yazdıran bir fonksiyonla ekrana yazdırdık soruda zaaten bizden bir input almıyor. Başta sisteme yüklediğimiz kodlardan yanlış sonuç elde ettik çünkü sorunun açıklama kısmını dikkatli okumamışız 🙂 .

Mal Kabul Müdürü Rıfkı

r1fk1 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Bu soruyu okuduğumuzda dictionary mantığı ile çok rahat yapılabileceği kanısına vardık 🙂 hemen kodlamaya başladık, python3 ile kodladık. Sisteme yüklediğimizde hatalı sonuç aldık daha sonra şunu farkettikki soruda “…harflerin sayısal değerlerini hesaplayarak 13e tam bölünen…” ibaresi yer alıyordu bizim yazdığımız kodda girdilerin sayısal değerlerini 13e bölünüp bölünmediğine bakıyordu. Hesaplamaktan kastı neydi acaba bütün sayısal değerleri toplayacakmıyız diye kendi kendimize sorduk daha sonra “birde böyle deniyelim” dedik ve sisteme yüklediğimiz algoritma bize doğru sonucunu döndürdü. Algoritmamız aşağıdaki gibi.

Matematikçi Janet

jan3t 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Bu soru oldukça kolaydı input olarak alınan değerleri split edip belirli matemtaiksel işlemlerde geçirdikten sonra tekrardan ekrana yazdırmamız isteniyordu kısacası soruda da denildiği gibi sadeleştirme işlemi yapacaktık python3 ile bu soruyu çok rahatça çözdük algoritmamız ise aşağıdaki gibi.

Matematikçi Pisagor

p1sag0r 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Bu soruda tıpkı örnek çıktıdaki gibi bir çarpım tablosu yazan algoritmayı istiyordu. Bu soruyu arkadaşım java ile kodladı başlangıçta tablonun sütunları arasındaki boşlukları boşluk karakteri olarak aldık sisteme yüklediğimizde sürekli hata alıyorduk daha sonra farkettikki orda boşluk karakteri yerine “\t” kullanmamız gerekiyormuş kodu düzeltip tekrar sisteme yükledik ve doğru sonuç aldık.

Çözemediğimiz Diğer Sorular

3ng1n 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2
3zg1 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2
b4r4n 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2
h4nd3 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2

Sonuç

Sonuç olarak kendi kişisel becerilerinizi geliştirirken aynı zamanda çok keyifli ve değerli vakit geçirebileceğiniz bir etkinlik, çok güzel tecrübeler katıyor kesinlikle bu tarz etkinliklere katılmanızı tavsiye ederim. Yukarıda bahsetmedim ama ben ve arkadaşım Cemal hiç beklemediğimiz bir problemle karşılaştık okulun internetine bağlandığımızda WI-FI den internete çıkamıyorduk bu probleme çözüm olarak ilk başta şöyle bir teori düşündük Feyyaz bilgisayarından WI-FI Hotspot açacaktı ve bizde ona bağlanıp internete çıkacaktık fakat yine internete çıkamadık sorunu bir türlü anlayamadık daha sonra telefonlarımızla internete çıkabildiğimizi farkettik. Ben telefonumdan Bluetooth internet paylaşımı açıpta internete çıktım (Ekran görüntülerindeki Bluetooth simgesinden belli oluyor 🙂 ) Cemal ise USB internet paylaşımı ile internete çıktı 🙂 bu şekilde karşılaşılan beklenmedik problemler bile size güzel tecrübeler katıyor. Geçen seferki gibi kurupasta, kahve, kola vardı geceyi karnımız tok bitirebildik :).

20 Ekip içerisinden 6. sıraya yerleşerek geceyi tamamladık 🙂 geçen seferki etkinlikte 11. sıraya yerleşmiştik 🙂 . ScoreBoard’da bir ara 3. sıraya kadar çıktık ilk üçte belli bir süre durduk gecenin sonuna doğru ise 6. sıraya düştük :). ilk 3 e girdiğimizde hemen ekran görüntüsü almayı unutmadık 🙂 .

sc0r3 b0ard 1 1024x576 - Fırat ACM – C0de N1ght ve Çözebildiklerimiz #2