Problem Solving Paradigm Flashcards
Apa itu Divide and Conquer?
Metode penyelesaian masalah dengan cara membagi masalah menjadi beberapa submasalah yang lebih kecil dan sederhana, kemudian menyelesaikan masing-masing submasalah dan menggabungkannya kembali menjadi sebuah solusi yang utuh.
Sebutkan beberapa algoritma yang menggunakan Divide and Conquer!
- Binary Search
- Binary Expo
- Merge Sort
- Segment Tree
- Fenwick Tree
Apa kompleksitas waktu dari Binary Search?
O(logN)
Apa yang dimaksud dengan Brute Force?
Metode yang memeriksa semua kemungkinan untuk menemukan solusi, sangat berguna untuk masalah yang kecil namun memakan waktu.
Apa itu Dynamic Programming?
Metode penyelesaian masalah yang mengoptimalkan brute force dengan menyimpan hasil submasalah yang telah diselesaikan.
Sebutkan dua cara implementasi Dynamic Programming!
- Top-down: diimplementasikan secara rekursif dengan memoisasi
- Bottom-up: diimplementasikan secara iteratif
Apa perbedaan antara Greedy dan Dynamic Programming?
Greedy memilih opsi terbaik lokal tanpa mempertimbangkan keseluruhan, sementara DP mencoba semua kemungkinan untuk menemukan solusi optimal.
Sebutkan dua tipe problem yang bisa diselesaikan menggunakan Dynamic Programming!
- Mencari suatu hal yang optimal
- Mencari banyak cara suatu hal
Apa itu Game Theory?
Bagian dari ilmu matematika yang mempelajari interaksi antar agen yang bersifat rasional dan strategi yang dipilih.
Apa yang dimaksud dengan Greedy Choice?
Langkah pemilihan yang paling menguntungkan dalam teknik Greedy.
Berapa banyak cara untuk membentuk kata ‘MAS’ dari ‘MASSSASAASAMMSAS’?
A. 22
B. 23
C. 24
D. 25
E. 26
Berapa nilai k yang dipilih Kwak untuk menyelesaikan PR?
10
Berapa banyak jalur yang dapat dilalui Pak Dengklek dari (1, 1) ke (6, 6) dalam grid 6x6?
15
Berapa banyak kemunculan subsekuens ‘OSN’ pada string ‘SONOSONO’?
2
Berapa banyak operasi minimum yang diperlukan agar tidak ada orang yang saling berhadapan dalam string biner ‘1100101110’?
4
Apa rumus untuk menghitung mod dari dua bilangan?
(a*b) mod m = (a mod m) * (b mod m)
Isi titik-titik berikut: 10! mod 11 = …
10
Apa yang dimaksud dengan subsekuens dalam konteks ini?
Urutan karakter yang dipilih dari string asli tanpa mengubah urutannya.
Jika N=10, berapa banyak pecahan koin minimal untuk penukaran 13 koin dengan koin 7, 2, 3, 6?
3