Anda di halaman 1dari 8

Praktek Pengantar Algoritma

Hardy Huang, Harrison, Andrew Jauhari & Budiman Wijaya

December 3, 2014
Modul 9

Teknik Pencarian(Search)

9.1 Petunjuk
• Perhatikan petunjuk Dosen untuk berbagai permasalahan Search !

• Perhatikan dan ikuti petunjuk dosen mengenai bagaimana cara meng-


gunakan program Judge untuk mengevaluasi permasalahan yang Anda
kerjakan!

1
9.2 Permasalahan
Permasalahan 1: Mama Minta Pulsa
Pernahkah Anda mengirim sms dari era sebelum smartphone ? Untuk mem-

buat sebuah huruf di layar handphone, Anda harus menekan sekumpulan


angka berulang - ulang sampai terbentuk sebuah kata. Pada permasalahan
ini, Anda diminta untuk menerjemahkan penekanan tombol menjadi kata
yang akan terbentuk. Simbol dan huruf besar ada huruf diabaikan, dan
angka 0 menyatakan spasi. Semua ouput adalah dalam huruf kecil

Masukan
Tipe Data String berupa penekanan tombol
Keluaran
Tipe Data String berupa isi pesan

Test Case 1

Masukan
6 2 6 2 0 6 444 66 8 2 0 7 88 555 7777 2
Keluaran
mama minta pulsa

Test Case 2

2
Masukan
6 2 6 2 0 555 2 4 444 0 3 444 0 55 2 66 8 666 777 0 7 666 555 444 7777 444
Keluaran
mama lagi di kantor polisi

Test Case 3

Masukan
5 2 66 4 2 66 0 8 33 555 33 7 666 66 0 6 2 6 2 0 3 88 555 88
Keluaran
jangan telepon mama dulu

3
Permasalahan 2: Sisip !
Diberikan kumpulan bilangan dan seperangkat instruksi dapatkah Anda
menghasilkan posisi terakhir dari instruksi tersebut ?
Kumpulan bilangan akan terdiri dari bilangan bulat, sedangkan perintah
akan terdiri dari “awal“,“akhir“ dan “samping“.
“Awal“ menyatakan akan ada penempatan data baru di awal.
“Akhir“ menyatakan akan ada penempatan data baru di akhir.
“Samping“ menyatakan ada penempatan data baru di samping dari angka
yang ditentukan. Setiap angka yang akan disisipkan ke dalam kumpulan
bilangan harus unik.

Masukan
String berisi : Kumpulan bilangan yang dipisahkan spasi
String berisi : “perintah“ “angka yang akan disisipkan“ (“disamping elemen
ke“)
Keluaran
Cetakan array paling akhir setelah penyisipan

Test Case 1

Masukan
1 2 10 4 5 6 7
awal 8
Keluaran
[ ]
8, 1, 2, 10, 4, 5, 6, 7

Test Case 2

Masukan
8 1 2 10 4 5 6 7
akhir 8
Keluaran
[ ]
8, 1, 2, 10, 4, 5, 6, 7

Test Case 3

Masukan
8 1 2 10 4 5 6 7
akhir 9
Keluaran
[ ]
8, 1, 2, 10, 4, 5, 6, 7, 9

4
Test Case 4

Masukan
8 1 2 10 4 5 6 7 9
samping 15 2
Keluaran
[ ]
8, 1, 2, 15, 10, 4, 5, 6, 7, 9

Test Case 5

Masukan
8 1 2 15 10 4 5 6 7 9
samping 15 10
Keluaran
[ ]
8, 1, 2, 15, 10, 4, 5, 6, 7, 9

Test Case 6

Masukan
8 1 2 15 10 4 5 6 7 9
samping 16 100
Keluaran
[ ]
8, 1, 2, 15, 10, 4, 5, 6, 7, 9

Test Case 7

Masukan
8 1 2 15 10 4 5 6 7 9
samping 20 7
Keluaran
[ ]
8, 1, 2, 15, 10, 4, 5, 6, 7, 20, 9

5
Permasalahan 3: Simpanse Mencari Jodoh
Seekor simpanse jantan, kita panggil namanya Luchu, sedang memilih pasan-
gannya, simpanse-simpanse betina yang sedang berbaris. Luchu sendiri
dalam memilih simpanse betina memiliki kriteria-kriteria tertentu. Luchu
menyukai simpanse betina yang memiliki tinggi badan yang lebih pendek
darinya, tapi juga bisa menerima simpanse betina yang memiliki tinggi
badan sedikit lebih tinggi darinya. Luchu akan menolak simpanse betina
yang memiliki tinggi badan yang sama tinggi seperti dirinya. Tugas anda
adalah membantu Luchu dalam memilih simpanse-simpanse betina yang
sesuai kriterianya.

Masukan
Terdapat dua baris untuk masukan ini.
- Baris pertama menandakan sejumlah tinggi badan simpanse betina terse-
but, kita andaikan tinggi badan simpanse-simpanse betina tersebut unik
(tidak ada dua simpanse yang tinggi badannya sama).
- Baris kedua menandakan sejumlah tinggi badan Luchu.
Keluaran
Keluarannya berupa sejumlah baris sesuai dengan jumlah tinggi badan Luchu.
Setiap baris terdiri dari dua angka dimana angka pertama menanda sim-
panse betina dengan tinggi badan paling tinggi tapi tidak lebih tinggi atau
sama dengan Luchu, sedangkan angka kedua menandakan simpanse betina
dengan tinggi badan paling rendah tapi lebih tinggi dari Luchu.
Jika tidak ada simpanse betina yang cocok maka berikan tanda ‘x’

Test Case 1

Masukan
7541
4 6 8 10
Keluaran
15
57
7X
7X

Test Case 2

Masukan
98213
1 7 10
Keluaran

6
X2
38
9X

Anda mungkin juga menyukai