-
-
Save bastomiadi/a738d979a27b11b28d5536b1759d7410 to your computer and use it in GitHub Desktop.
Revisions
-
ianmustafa revised this gist
Mar 3, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,7 +7,7 @@ untuk tantangannya di grup Telegram PHP Indonesia for Students. Tantangan ini sa > Misalkan kita mempunyai list berisikan bilangan bulat antara `1` sampai `n` sebanyak `n + 1` angka. > Yang pasti kita ketahui adalah minimal ada satu bilangan yang duplikat dalam list tersebut. > > Contohnya jika `n = 3` maka bisa jadi isi List tersebut adalah `3, 1, 1, 3` atau bisa juga `1, 2, 3, 3`. ## Tugas Cari bilangan duplikat dalam list tersebut. -
ianmustafa created this gist
Mar 3, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,27 @@ # Tantangan PHP Indonesia for Student: Cari Bilangan Duplikat dalam List Sebelumnya, terima kasih kepada om Nur Hidayat (@hidayat365, [Pojok Programmer](http://pojokprogrammer.net)) untuk tantangannya di grup Telegram PHP Indonesia for Students. Tantangan ini saya kerjakan karena iseng dan _nungguin_ deploy app. π ## Latar Belakang > Misalkan kita mempunyai list berisikan bilangan bulat antara `1` sampai `n` sebanyak `n + 1` angka. > Yang pasti kita ketahui adalah minimal ada satu bilangan yang duplikat dalam list tersebut. > > Contohnya jika `n = 3` maka bisa jadi isi List tersebut adalah `3, 1, 1, 3` atau bisa juga `1, 2, 3, 3` ## Tugas Cari bilangan duplikat dalam list tersebut. ### Ketentuan * Cukup satu bilangan saja, jadi untuk contoh diatas, jawabannya boleh `1` atau `3`. * `n` boleh berupa konstanta atau input dari user. (Disini saya pilih input dari user) * Isi list boleh generate pakai random. ## Sedikit Curhat Solusi ini hanya bisa solving hingga `n` sebesar sejutaan. Diatas itu rawan terjadi _memory limit_. Mungkin lain kali akan saya improve (kalau ada yang request). π ## Ada pertanyaan? Silakan hubungi saya via Facebook [@iianmustafa](https://fb.me/iianmustafa), Twitter [@iianmustafa](https://twitter.com/iianmustafa) atau Telegram [@ianmustafa](https://telegram.me/ianmustafa). This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,43 @@ <?php // Kita ambil nilai n dulu $n = readline('Masukkan nilai n [5]: '); // Jika tidak diisi, kita set n = 5 secara default $n = $n === '' ? 5 : $n; $break = false; // Disini masalahnya, rawan terjadi memory limit ketika // n terlalu besar foreach (range(0, $n) as $a) $list[] = rand(0, 9); // Disini ktai buat pengecekan foreach ($list as $i => $x) { // Simpan angka dari urutan bersangkutan ke $temp $temp = $x; // Lalu cek dalam list apakah ada angka yang sama foreach ($list as $j => $y) { // Jika angka yang sama ditemukan DAN tidak berada // di posisi yang sama, hentikan loop dan simpan // angka tersebut untuk output if ($i !== $j && $temp === $y) { $duplicate = $temp; // Set $break ke true untuk menghentikan loop $break = true; // Break π if ($break) break; } } // Break π if ($break) break; } // Output π echo 'List: ' . implode(', ', $list) . "\n"; // Untuk pengguna PHP < 7, gunakan kode berikut: isset($duplicate) ? $duplicate : 'tidak ada' echo 'Nomor kembar: ' . ($duplicate ?? 'tidak ada') . "\n"; // Yay π