Sedikit Ulasan dari Facebook Hacker Cup

16.08 |




Tentunya udah pada tau dong, kalo beberapa waktu yang lalu Facebook (entah secara resmi atau tidak) mengadakan Hacking Contest. Menurut halaman penyelenggara situs ini, (http://www.facebook.com/event.php?eid=148059031890072), kontes ini diadakan mulai dari tanggal 07 Januari jam 16:00 sampai 10 Januari jam 16:00.

Setelah iseng-iseng daftar tadi (10 Januari jam 18:00 <--- udah telat keknya. hiks), didalamnya ada beberapa soal, seperti yang tertera di link ini -> http://www.facebook.com/hackercup/aj...88558297823727

Peraturannya adalah, setiap soal bisa dipilih, kemudian pertanyaannya di download, untuk dikerjakan, dan kita diberi waktu 6 menit untuk kembali mengirim jawaban dari pertanyaan tersebut.

Setelah melihat-lihat dulu di http://www.facebook.com/hackercup/problems.php?round=4, ada 3 soal yang bisa kita pilih untuk kita kerjakan.
1. Double Squares <--- dari penjelasan cara mengerjakannya yang pake bahasa inggris ini, aku gak mudeng, bahasa inggris ja udah gak ngerti, apalagi didalamnya ada penjelasan rumus2nya.hiks T_T
2. Peg Game <--- sama. dari penjelasannya gak mudeng juga, maksudnya gmn? hiks hiks...
3. Studious Student <--- ini yang agak bisa sedikit di cerna, karena intinya adalah mengurutkan kata-kata yang ada didalam array. Jadi aku coba mengerjakan soal ini.
Didalam penjelasannya ada beberapa contoh soalnya seperti ini:

6 facebook hacker cup for studious students
5 k duz q rc lvraw
5 mybea zdr yubx xe dyroiy
5 jibw ji jp bw jibw
5 uiuy hopji li j dcyi

dengan jawabannya sebagai berikut:

cupfacebookforhackerstudentsstudious
duzklvrawqrc
dyroiymybeaxeyubxzdr
bwjibwjibwjijp
dcyihopjijliuiuy

Penjelasan:
Angka diawal baris menunjukkan banyaknya 'kata' sesudahnya.
6 facebook hacker cup for studious students <--- angka 6, berarti ada 6 kata (facebook, hacker, cup, for, studious, dan students) sesudahnya yang harus diurutkan berdasarkan abjad. Kenapa jawabannya adalah "cupfacebookforhackerstudentsstudious" ?
karena cup <--- huruf c, adalah abjad paling pertama (jika diurutkan mulai dari a) diantara 5 kata lainnya,
facebook <--- huruf f, adalah abjad kedua jika diurutkan
lalu kenapa 'for' ada diurutan ketiga? karena facebook => f->a, sedangkan for => f->o, dimana a lebih dulu dari 'o' jika diurutkan. Dan seterusnya. Cukup mudah ya?

Wait, kalo hanya untuk 5 soal diatas, kenapa kita diberi waktu 6 menit? berarti kemungkinan soalnya lebih banyak, dan jumlah kata per barisnya juga mungkin lebih dari 6. Belum lagi dengan kata-kata acak seperti diatas, mungkin kita akan membuang2 waktu kalo langsung diurutkan setelah soal didownload (ingat, kita cuma punya waktu 6 menit!).

Euhm... bagaimanapun, segala sesuatu jika dikerjakan oleh program pasti akan lebih cepat daripada kita mengerjakannya secara manual. Jadi bagaimana kalo kita buatkan saja program untuk otomatis mengurutkan kata-kata dari soal yang akan diberikan? yarp... let's go to coding... ^_^
Cat: bahasa pemrogramannya bisa apa saja, tinggal disesuaikan dengan logika diatas. disini, aku lebih senang menggunakan PHP.

Kode Programnya:
<?php// Pertama kita buat form untuk memasukkan jumlah baris yang harus dihitung, dari contoh diatas ada 5 baris.echo "<form name='f' action='' method='post'>
<input type='text' name='nWord'>
<input type='submit' name='submit' value='submit'>
</form>"
;// Kemudian menampilkan field, sebanyak jumlah baris yang harus diisiif($_POST['submit']){
echo 
"<form name='f2' action='' method='post'>
<input type='hidden' name='n' value='"
.$_POST[nWord]."'>";
for(
$i=0;$i<$_POST[nWord];$i++){
echo 
"<input type='text' name='idx".$i."'><br>";
}
echo 
"<input type='submit' name='generate' value='Go'></form>";
}
// Langkah terakhir adalah, mengurutkan masing-masing baris, sesuai dengan kata-kata yang diinputkan. :)if($_POST['generate']){
for(
$ii=0;$ii<$_POST[n];$ii++){$list $_POST['idx'.$ii];$getIdx explode(" ",$list);asort ($getIdx);reset ($getIdx);
while(list(
$key,$val)=each($getIdx)){
echo 
"$val";
}
echo 
"<br>";
}
}
?>
dan kita tinggal melihat hasilnya saja. ;p

Berikut ini, soal yang aku dapat dari Kontes ini:

9 a yncoklkc ek yyfqebh je edzhujjc gpmb ktqimdtw opka9 jg j uj ujnzdng nzdng nzdn e g ujnzdngj9 fujv mzr kgukjmokvz schpxugnef p rjojpzbsro wpobp wl od5 jibw ji jp bw jibw9 k itqsgpwze ma yhpncg
xtf w m kahula zgbo9 dcn csmzj krnc vkcoume wvpva yqoexwujwp v cxepgptf xb 9 i hsmh hsmheh xgi eh xg xgeh xnfc ihsmh5 uiuy hopji li j dcyi 6 facebook hacker cup for studious students9 myrzwdyhv
pojiires fbjbkcbtq pzdfuxfh rq ukbom ypkffomyl tdko zbwqkbuu9 orth xlruwr afpjkzr qtrrmfpr lvqsidbp qcr dcg xcykyy trarmefmf9 rnnabb ldk ndhn rnnaldk zeabbbb zeabb zea rnna bb5 mybea zdr yubx xe dyroiy9 zvow qhx hx vth qhxhxdfgt q dfgt hxdfgt qhxq9 u ufmu ufmuqfy vmc ufm uqfy z vmcu qfy 9 wjxwgm qdhmzkmpzv uhibo gcikegpzv ceqiwekdx rxegvkc ujjvbv kfit peiawyk 9 rgh woqg dmabatgbt qrvpcrx eluunoi sy w wnthqxgkg aimallazuc 9 ksdzsjz bbio ja mvvyxzkmq zgdvxolmt xgvwdbfqzn rhubnqtaad qa eeb 9 gm souyd fsrd bjnnuknqs rvncvkvssd gxfl wjmeagyob pahil nkfrcuhjh9 joicfs joi xul nzndjoi nzndjoijoi nznd nzndjoijoi ssre cfs

Silahkan dikerjakan dalam waktu 6 menit. 

Mungkin kalo dilihat dari soal-soalnya, kontes ini lebih mengarah ke Programming. Lalu Kenapa judulnya Hacker Cup? Dan soal-soalnya juga bukan tentang membobol sistem? Yarp, sepertinya kita harus kembali memaknai maksud dari 'Hacking' itu sendiri. Ini bukan tentang bagaimana cara memasuki sebuah sistem, tapi ini adalah tentang proses apa yang sebenarnya terjadi saat memasuki sebuah sistem.

Correct Me If I'm Wrong... yarp..yarp.. ^_^

0 komentar: