My first Magazine pemrograman-kompetitif-dasar | Page 48
4
Brute Force
Brute force adalah salah satu strategi penyelesaian masalah. Brute force merupakan
strategi yang sederhana, serta pasti menemukan solusi yang kita harapkan, walaupun pada
umumnya memerlukan waktu yang cukup lama.
II Sekilas Info JJ
Pada kompetisi dengan sistem penilaian parsial seperti OSN atau IOI, umumnya subsoal-
subsoal awal dapat diselesaikan dengan brute force .
4.1
Konsep Brute Force
Brute force bukan merupakan suatu algoritma khusus, melainkan suatu strategi penyelesaian
masalah. Sebutan lain dari brute force adalah complete search dan exhaustive search . Prinsip
dari strategi ini hanya satu, yaitu mencoba semua kemungkinan.
Brute force menjamin solusi pasti benar karena menelusuri seluruh kemungkinan. Aki-
batnya, secara umum brute force bekerja dengan lambat, terutama ketika terdapat banyak
kemungkinan solusi yang perlu dicoba. Sebagai contoh, salah satu penggunaan strategi brute
force adalah dalam mengerjakan permasalahan Subset Sum .
Contoh Soal 4.1: Subset Sum
Diberikan N buah bilangan {a 1 , a 2 , ..., a N } dan sebuah bilangan K. Apakah terdapat sebuah
subhimpunan sedemikian sehingga jumlahan dari elemen-elemennya sama dengan K? Bila
ya, maka keluarkan "YA". Selain itu, keluarkan "TIDAK".
Batasan
• 1 ≤ N ≤ 15
• 1 ≤ K ≤ 10 5
• 1 ≤ a i ≤ 10 5
4.2
Penyelesaian dengan Teknik Brute Force
Ingat bahwa prinsip dari strategi brute force adalah menelusuri semua kemungkinan. Dengan
kata lain, kita mencoba membangkitkan seluruh kemungkinan, lalu mencari jawaban dari permasa-
lahan kita melalui seluruh kemungkinan tersebut. Dalam membangkitkan seluruh kemungkinan,
kita dapat melakukannya secara iteratif maupun rekursif.
38