{"id":22459,"date":"2025-05-29T03:15:13","date_gmt":"2025-05-29T00:15:13","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/"},"modified":"2025-05-29T03:15:13","modified_gmt":"2025-05-29T00:15:13","slug":"php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/","title":{"rendered":"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc"},"content":{"rendered":"<p>PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc<\/p>\n<p>Bu makalede, LeetCode&#8217;un 649 numaral\u0131 problemi olan &#8220;Dota2 Senatosu&#8221;nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.  Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz.  \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz.  Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.<\/p>\n<h2>Problem Tan\u0131m\u0131: Dota2 Senatosu<\/h2>\n<p>Problem \u015fu \u015fekilde \u00f6zetlenebilir:  Senatoda iki fraksiyon var, &#8220;radiant&#8221; ve &#8220;dire&#8221;.  Her fraksiyonun belirli say\u0131da \u00fcyesi var.  Oylama s\u0131ras\u0131 verilen bir dizi ile belirleniyor.  Oylama \u015fu \u015fekilde ger\u00e7ekle\u015fiyor: S\u0131radaki senat\u00f6r oy kullan\u0131yor. E\u011fer senat\u00f6r &#8220;radiant&#8221; ise, bir &#8220;dire&#8221; senat\u00f6r\u00fcn\u00fc ortadan kald\u0131r\u0131yor.  E\u011fer senat\u00f6r &#8220;dire&#8221; ise, bir &#8220;radiant&#8221; senat\u00f6r\u00fcn\u00fc ortadan kald\u0131r\u0131yor.  Oylama, bir fraksiyonun \u00fcyeleri kalmay\u0131ncaya kadar devam ediyor.  Kazanan fraksiyon, oylama sonunda \u00fcyeleri kalan fraksiyondur.<\/p>\n<h2>PHP ile \u00c7\u00f6z\u00fcm: Kuyruk Veri Yap\u0131s\u0131<\/h2>\n<p>Bu problemi \u00e7\u00f6zmek i\u00e7in, her fraksiyon i\u00e7in bir kuyruk (queue) veri yap\u0131s\u0131 kullanabiliriz.  Kuyruklar, FIFO (First-In, First-Out) prensibiyle \u00e7al\u0131\u015fan veri yap\u0131lar\u0131d\u0131r.  \u0130lk giren eleman, ilk \u00e7\u0131kar\u0131lan elemand\u0131r.  Bu, senat\u00f6rlerin oylama s\u0131ras\u0131n\u0131 do\u011fru bir \u015fekilde y\u00f6netmemize olanak tan\u0131r.  A\u015fa\u011f\u0131da, PHP kullanarak yaz\u0131lm\u0131\u015f bir \u00e7\u00f6z\u00fcm \u00f6rne\u011fi bulunmaktad\u0131r:<\/p>\n<pre><code class=\"language-php\">\n<?php\nfunction predictPartyVictory(string $senate): string {\n    $radiant = new SplQueue();\n    $dire = new SplQueue();\n\n    for ($i = 0; $i < strlen($senate); $i++) {\n        if ($senate[$i] == 'R') {\n            $radiant->enqueue($i);\n        } else {\n            $dire->enqueue($i);\n        }\n    }\n\n    while (!$radiant->isEmpty() && !$dire->isEmpty()) {\n        $r = $radiant->dequeue();\n        $d = $dire->dequeue();\n\n        if ($r < $d) {\n            $radiant->enqueue($r + strlen($senate)); \/\/ sonraki tura ekle\n        } else {\n            $dire->enqueue($d + strlen($senate)); \/\/ sonraki tura ekle\n        }\n    }\n\n    return $radiant->isEmpty() ? 'Dire' : 'Radiant';\n}\n\n\/\/ \u00d6rnek kullan\u0131m\n$senate = \"RD\";\n$winner = predictPartyVictory($senate);\necho \"Kazanan: \" . $winner . \"\\n\"; \/\/ \u00c7\u0131kt\u0131: Radiant\n\n\n?>\n<\/code><\/pre>\n<p>Bu kodda,  SplQueue s\u0131n\u0131f\u0131n\u0131 kullanarak iki kuyruk olu\u015fturuyoruz.  Her senat\u00f6r, kuyru\u011fa ekleniyor.  Oylama i\u015flemi, her iki kuyrukta da eleman kalmay\u0131ncaya kadar devam ediyor.  Sonu\u00e7 olarak, kazanan fraksiyon belirleniyor.<\/p>\n<h2>Performans Analizi ve \u0130yile\u015ftirmeler<\/h2>\n<p>Bu \u00e7\u00f6z\u00fcm\u00fcn zaman karma\u015f\u0131kl\u0131\u011f\u0131 O(N) olup, N senat\u00f6r say\u0131s\u0131n\u0131 temsil eder.  Bu, olduk\u00e7a verimli bir \u00e7\u00f6z\u00fcmd\u00fcr.  Ancak, \u00e7ok b\u00fcy\u00fck girdiler i\u00e7in performans\u0131 daha da iyile\u015ftirmek i\u00e7in baz\u0131 optimizasyonlar yap\u0131labilir.  \u00d6rne\u011fin, kuyruk i\u015flemlerini daha verimli hale getirmek i\u00e7in farkl\u0131 bir veri yap\u0131s\u0131 kullan\u0131labilir. Ancak bu problem i\u00e7in SplQueue yeterlidir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, LeetCode 649 problemine PHP kullanarak bir \u00e7\u00f6z\u00fcm sunduk.  Kuyruk veri yap\u0131s\u0131n\u0131n, bu t\u00fcr problemleri \u00e7\u00f6zmek i\u00e7in ne kadar kullan\u0131\u015fl\u0131 oldu\u011funu g\u00f6sterdik.  Ayr\u0131ca, kodumuzun performans\u0131n\u0131 analiz ettik ve olas\u0131 iyile\u015ftirmelerden bahsettik.  Daha fazla PHP ve algoritma problemleri i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<p>#Etiketler: PHP, Kuyruk, Queue, LeetCode, Dota2 Senatosu, Algoritma, Veri Yap\u0131s\u0131, Problem \u00c7\u00f6zme, Programlama,  SplQueue,  FIFO<\/p>\n","protected":false},"excerpt":{"rendered":"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc Bu makalede, LeetCode&#8217;un 649 numaral\u0131 problemi olan &#8220;Dota2 Senatosu&#8221;nu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-22459","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc<\/title>\n<meta name=\"description\" content=\"Bu makalede, LeetCode&#039;un 649 numaral\u0131 problemi olan &quot;Dota2 Senatosu&quot;nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc\" \/>\n<meta property=\"og:description\" content=\"Bu makalede, LeetCode&#039;un 649 numaral\u0131 problemi olan &quot;Dota2 Senatosu&quot;nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-29T00:15:13+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc\",\"datePublished\":\"2025-05-29T00:15:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\"},\"wordCount\":458,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\",\"name\":\"PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-05-29T00:15:13+00:00\",\"description\":\"Bu makalede, LeetCode'un 649 numaral\u0131 problemi olan \\\"Dota2 Senatosu\\\"nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc","description":"Bu makalede, LeetCode'un 649 numaral\u0131 problemi olan \"Dota2 Senatosu\"nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/","og_locale":"tr_TR","og_type":"article","og_title":"PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc","og_description":"Bu makalede, LeetCode'un 649 numaral\u0131 problemi olan \"Dota2 Senatosu\"nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-05-29T00:15:13+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"2 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc","datePublished":"2025-05-29T00:15:13+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/"},"wordCount":458,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/","url":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/","name":"PHP ile Kuyruklar: LeetCode 649 - Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-05-29T00:15:13+00:00","description":"Bu makalede, LeetCode'un 649 numaral\u0131 problemi olan \"Dota2 Senatosu\"nu PHP kullanarak nas\u0131l \u00e7\u00f6zebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Problem, iki farkl\u0131 fraksiyonun senatoda oylama yapmas\u0131n\u0131 ve oylama sonucunda bir fraksiyonun di\u011ferini nas\u0131l yendi\u011fini ele al\u0131yor. Bu problemi \u00e7\u00f6zmek i\u00e7in kuyruk veri yap\u0131s\u0131n\u0131n ne kadar etkili oldu\u011funu g\u00f6rece\u011fiz. \u00d6ncelikle problemi anlamak ve daha sonra PHP ile nas\u0131l \u00e7\u00f6z\u00fclebilece\u011fini inceleyece\u011fiz. Ard\u0131ndan, kodumuzun performans\u0131n\u0131 de\u011ferlendirece\u011fiz ve olas\u0131 iyile\u015ftirmelerden bahsedece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/php-ile-kuyruklar-leetcode-649-dota2-senatosu-cozumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP ile Kuyruklar: LeetCode 649 &#8211; Dota2 Senatosu \u00c7\u00f6z\u00fcm\u00fc"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/22459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=22459"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/22459\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=22459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=22459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=22459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}