Contoh Soal & Pembahasan

Paling naif tentu anda mencari dari baris pertama

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: sb., tolonglah Pak Dengklek untuk mencari nomor telepon teman‐teman Pak Dengklek tersebut. FORMAT MASUKAN Baris pertama berisi dua buah bilangan bulat: • • N (1 ≤ N ≤ 10.000), menunjukkan jumlah penduduk desa yang terdaftar di buku kuning. Q (1 ≤ Q ≤ 10.000), menunjukkan jumlah teman Pak Dengklek. N baris selanjutnya berisi nama dan nomor telepon setiap orang di desa tersebut, dipisahkan dengan spasi. Q baris selanjutnya berisi nama‐nama teman Pak Dengklek. Nama setiap orang hanya akan tersusun dari huruf kapital, dengan panjang maksimal 15 huruf. Daftar nama pada buku kuning akan terurut sesuai abjad, tetapi daftar teman Pak Dengklek yang akan dicari nomor telponnya belum tentu terurut dan satu teman Pak Dengklek bisa saja ditanyakan lebih dari sekali. Setiap nomor telepon terdiri atas tepat 7 angka, satu nomor telepon dapat dimiliki oleh lebih dari satu orang. Semua teman pak Dengklek yang akan dicari nomor telponnya pasti tercantum dalam buku kuning. Tim Olimpiade Komputer Indonesia halaman 31 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan FORMAT KELUARAN Keluarkan Q baris, di mana setiap barisnya berisi nomor telepon dari teman yang ditanyakan oleh Pak Dengklek. CONTOH MASUKAN 10 5 ACONG 8468431 BALAJI 1573547 GREGOR 1765743 JAPRA 3746843 JOKO 1357891 MALARANGENG 1375638 MANMOHAN 1357562 SITORUS 1378651 TERRY 8756345 YUDHOYONO 1781945 GREGOR YUDHOYONO ACONG MANMOHAN JAPRA CONTOH KELUARAN 1765743 1781945 8468431 1357562 3746843 PEMBAHASAN3 Pertanyaan: Jika diberikan N data terurut tersimpan dalam tabel, lalu Anda diminta mendapatkan suatu data di antara N data tersebut, maka apa yang akan Anda lakukan? Paling naif tentu Anda mencari dari baris pertama dalam N data tersebut hingga ditemukan data yang dicari itu. Pemeriksaannya adalah dengan operasi membandingkan string‐string yang bersangkutan (data yang dicari dan data tersimpan). Jika data sangat banyak sekali maka Anda akan menghadapi batas waktu komputasi. Satu trik yang TERNYATA bisa lolos untuk mendapatkan nilai penuh di OSN ini (karena banyaknya datanya masih terlalu kecil!) adalah tetap dengan pemeriksaan dari baris pertama tetapi dengan memeriksa karakter pertama string‐string itu: Jika sama maka periksa karakter berikutnya sementara jika berbeda, maka skip data tersebut untuk memeriksa data pada baris berikutnya. Dikutip dari http://www.toki.or.id/archive/ultahsolusi.html 3 Tim Olimpiade Komputer Indonesia halaman 32 Contoh Soal Olimpiade Sains Nasional Bidang Komputer dan Pembahasan Untuk tingkat lebih lanjut tentu solusi tersebut dibuat untuk tidak akan mendapatkan nilai penuh! Untuk mendapatkan nilai penuh maka ada dua teknik yang perlu dikuasai yaitu algoritma binary search dan yang lebih lanjut lagi adalah dengan hash table. Algoritma binary search hanya dapat bekerja...
View Full Document

Ask a homework question - tutors are online