SOAL
Alice dan Bob masing-masing membuat satu soal untuk tugas kuliah. Seorang dosen menilai dua orang tersebut, memberikan poin pada skala dari 1 hingga 100 untuk tiga kategori: kejelasan soal, orisinalitas, dan kesulitan.
Nilai untuk Alice adalah triplet a = (a[0], a[1], a[2]), dan nilai untuk Bob adalah triplet b = (b[0], b[1] , b[2]).
Tugasnya adalah menemukan titik perbandingannya dengan membandingkan a[0] dengan b[0], a[1] dengan b[1], dan a[2] dengan b[2].
Jika a[i] > b[i], maka Alice diberikan 1 poin.
Jika a[i] < b[i], maka Bob diberikan 1 poin.
Jika a[i] = b[i], maka tidak ada orang yang menerima poin.
Poin perbandingan adalah total poin yang diperoleh seseorang.
Diberikan a dan b, tentukan titik perbandingannya masing-masing.
Ilustrasi oleh Harryarts - www.freepik.com. |
ALGORITMA
1. start, dengan masukan variabel a dan b sebagai array yang berisi masing-masing 3 integer.
2. inisialisasi variabel result sebagai array yang berisi dua integer, variabel ini digunakan untuk menampung jawaban atau hasil dari fungsi ini.
3. inisialisasi variabel length = 3, digunakan untuk menampung jumlah data yang akan dibandingkan.
4. inisialisasi variabel index = 0.
5. jika index lebih kecil dari length, maka lanjut ke langkah 6,
- jika tidak lanjut ke langkah 9.
6. jika nilai variabel a ke index lebih besar dari b ke index, maka tambahkan nilai variabel result ke 0, lanjut ke langkah 8,
- jika tidak lanjut ke langkah 7.
7. jika nilai variabel a ke index lebih kecil dari b ke index, maka tambahkan nilai variabel result ke 1, lanjut ke langkah 8,
- jika tidak lanjut ke langkah 8.
8. tambahkan nilai variabel index kembali ke langkah 5.
9. kembalikan nilai variabel result.
10. end.
SOURCE CODE
/*
* Fungsi ini digunakan untuk mengembalikan INTEGER_ARRAY.
* Fungsi menerima parameter berikut:
* 1. INTEGER_ARRAY a
* 2. INTEGER_ARRAY b
*/
function compareTriplets(a, b) {
let result = [0, 0];
let length = 3;
for(let index = 0; index < length; index++){
if(a[index] > b[index]) result[0]++;
else if(a[index] < b[index]) result[1]++;
}
return result;
}
PEMBAHASAN
Misal:
a = [1, 2, 3]
b = [3, 2, 1]
Untuk elemen *0*, Bob diberikan poin karena a[0] < b[0].
Untuk elemen yang sama a[1] dan b[1], tidak ada poin yang diperoleh.
Akhirnya, untuk elemen 2, a[2] > b[2] jadi Alice menerima poin.
Array kembali adalah [1, 1] dengan skor yang pertama adalah untuk Alice dan yang kedua untuk Bob.
DESKRIPSI FUNGSI
Fungsi compareTriplets memiliki parameter berikut:
int a[3]: Nilai Alice
int b[3]: Nilai Bob
Kembalian
int[2]: Nilai pertama adalah milik Alice, dan yang kedua adalah milik Bob.
Format Masukan
Baris pertama berisi 3 bilangan bulat yang dipisahkan spasi, a[0], a[1], dan a[2], masing-masing nilai dalam triplet a.
Baris kedua berisi 3 bilangan bulat yang dipisahkan spasi, b[0], b[1], dan b[2], masing-masing nilai dalam triplet b.
Batasan
1 < a[i] <= 100
1 < b[i] <= 100
CONTOH 1
Masukan
a = [5 6 7]
b = [3 6 10]
Keluaran
result = [1 1]
Penjelasan
Dalam contoh ini:
a = (a[0], a[1], a[2]) = (5, 6, 7)
b = (b[0], b[1], b[2]) = (3, 6, 10)
Sekarang, mari kita bandingkan setiap skor individu:
a[0] > b[0], jadi Alice menerima 1 poin.
a[1] = b[1], jadi tidak ada yang menerima poin.
a[2] < b[2], jadi Bob menerima 1 poin.
Skor perbandingan Alice adalah 1, dan skor perbandingan Bob adalah 1. Jadi kembalian array adalah [1, 1].
CONTOH 2
Masukan
a = [17 28 30]
b = [99 16 8]
Keluaran
result = [2 1]
Penjelasan
Membandingkan elemen ke 0, 17 < 99 jadi Bob menerima satu poin.
Membandingkan elemen ke 1 dan 2, 28 > 16 dan 30 > 8 sehingga Alice menerima dua poin.
Kembalian array adalah [2, 1].
Tidak ada komentar: