Kaskus

Tech

njikoAvatar border
TS
njiko
Tanya Pseudocode
Assalamu'alaykum,, selamat pagi

Agan2 yang jago algoritma, boleh minta sarannya gak?


Diketahui 2 buah array (sebut aja A dan B). Elemen pada array A berisi bilangan bulat acak, sedangkan elemen pada array B berisi 1 bilangan bulat yang nilainya lebih besar dari elemen terbesar pada array A. (Note: nilai SUM pada array A == nilai SUM pada array B)

Misal :
A = {A1,A2,A3,..... Am};
B = {B1,B1,B1,... B1};

Pertanyaannya :
Bagaimana algoritma membagi array A menjadi beberapa blok, dimana jumlah bloknya sebanyak jumlah elemen pada array B DAN jika elemen pada masing2 blok dijumlahkan maka akan mendapatkan nilai B1

Contoh soal 1 :
A = {4, 3, 2, 1};
B = {5,5};

maka
Blok A1 = {4,1};
Blok A2 = {3,2};
Nilai SUM pada masing2 blok = nilai B1 = 5


Contoh soal 2:
A = {10, 9, 7, 6, 6, 5, 4, 4, 3, 2};
B = {14, 14, 14, 14};

maka akan terbentuk 4 blok dengan nilai elemen masing2
Blok A1 = {10,4};
Blok A2 = {9,5};
Blok A3 = {7,4,3};
Blok A4 = {6,6,2};

Nilai SUM pada masing2 blok A1 dst == nilai B1 == 14
-----------------------------------
Kalau pseudocode yg sejauh ini ane buat :

n = jumlah elemen array B
for i = 1 sampai n
sisa = nilai B1
Blok_Ai = {};
while sisa ~= 0
idx = cari index nilai A terbesar yang nilainya <= sisa
sisa = sisa - A[idx];
Blok_Ai = {Blok_Ai A[idx]};
Hilangkan nilai A[idx]
end while
end for


Nah permasalahannya itu, masih ada salah (bakal error) di pseudocode ane...
Kalau menggunakan nilai A dan B pada contoh nomor 2 di atas, maka pada saat i=3
Blok A3 akan terisi {7,6, ..??} (nilai idx yg selanjutnya ga akan ada DAN nilai SUM pada A3 tidak akan mungkin sama dengan B1 atau 14)


---------

Makasih gan emoticon-Kiss
Diubah oleh njiko 19-08-2014 10:01
0
1.2K
2
GuestAvatar border
Komentar yang asik ya
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer Forum
KASKUS Official
20.3KThread5.1KAnggota
Urutkan
Terlama
GuestAvatar border
Komentar yang asik ya
Ikuti KASKUS di
© 2026 KASKUS, PT Darta Media Indonesia. All rights reserved.