Sandi 53
January 1st, 2005 by mbro
Untuk masuk kedalam ruang server utama, ‘pengunjung’ harus mempunyai kartu identitas. Bila kartu identitas tersebut valid, selanjutnya pengunjung harus memasukkan kode melalui numeric keypad yang formatnya mirip dengan numpad pada keyboard.
Uniknya, sistem ini sama sekali tidak menyimpan kode (password) dalam databasenya. Pintu ruangan akan terbuka bila kode yang dimasukkan bernilai 53 (limapuluh tiga). Tapi, Anda tidak dapat memasukkan begitu saja angka 5 dan 3 ini. Sistem tidak dapat menerima dua angka secara berturut-turut sebagai sebuah bilangan. Jadi bila Anda memasukkan kode 53 maka akan dikenali sebagai angka 5 dan 3 (bukan limapuluh tiga). Lalu bagaimana?
Anda harus menggunakan operasi aritmatika untuk mendapatkan angka 53. Contoh: 5 * 5 * 2 + 3 = 53. Namun, sistem juga akan menolak inputan 5*5*2+3 karena sistem membaca kode secara “PREFIX”. Jadi operasi aritmatika tersebut dapat dibentuk menjadi: +**5523 atau +*5*523.
Sayangnya sistem ini masih hanya sebatas usulan dari pihak manajemen. Angka 53 ini nantinya dapat diubah sewaktu-waktu sesuai dengan keputusan manajemen. Sebagai programmer baru Anda diminta terlibat dalam permasalahan ini.
Tugas Anda bukan untuk menemukan kombinasi dan bentuk prefix dari angka 53 tersebut, tetapi merancang program untuk membaca dan mengenali kode 53.
Input:
inputan program berupa “kode prefix” yang dimasukkan melalui mesin numpad. Asumsi: karakter yang diinputkan hanya 0,1,2,3,4,5,6,7,8,9,+,-,*,/, dan tombol Enter.
Output:
Ada tiga kemungkinan output program, yaitu “format salah”, bila bentuk prefixnya salah. “kode ditolak”, bila kode prefix yang dimasukkan tidak sama dengan 53. Dan “kode diterima”, bila kode yang dimasukkan mempunyai nilai 53.
Contoh:
input: 5*5*2+3 output: format salah input: +*5103 output: format salah input: +53 output: kode ditolak input: +**5523 output: kode diterima input: +*5*523 output: kode diterima input: +**552/+-2592 output: kode diterima
Petunjuk: karakter dibagi menjadi dua kelompok yaitu operator (+,-,*,/) dan operand (0,1,2,3,4,5,6,7,8,9). Gunakan binary tree dan masukkan tiap karakter kode tsb ke dalam tree dengan menggunakan metode prefix.
(mbro291203)
0 Responses to “Sandi 53”
Ingin diskusi? kunjungi forum belajar!
Leave a Response