Simple Array Sum
tujuannya adalah untuk mendapatkan jumlah dari tiap elemen array, contohnya 1 + 2 + 4 + 10 + 11 = 31
Input
6
1 2 3 4 10 11
Output
31
Code
var sum = 0;
for (var i = 0; i <ar.length; i++) {
sum += ar[i];
}
return sum;
Alternative
let sum = (accumulator, currentValue) => accumulator + currentValue;
return ar.reduce(sum);
Compare the Triplets
di compare the triplets ini bertujuan untuk menentukan nilai mana yang lebih besar dari tiap elemen array, contohnya kasus nya : jika a mempunyai array [1,2,3] dan b mempunyai array [3,2,1] dengan kondisi di bawah ini
- jika a[0] lebih besar dari pada b[0] maka a mendapatkan poin 1
- jika a[1] sama dengan b[1]maka tidak ada yang mendapatkan poin
- jika a[2] lebih kecil dari b[2] maka b yang mendapatkan poin
kemudian hasil poin antara a dan menggabungkan ke dalam array menjadi [1,1]
Input
17 28 30
99 16 8
Output
2 1
Code
let score = [0,0]
for (let i = 0; i < a.length; i++)
a[i] > b[i] ? score[0]++ : a[i] < b[i] ? score[1]++ : ""
return score
A Very Big Sum
tujuannya adalah untuk mendapatkan jumlah dari tiap elemen array, contohnya 1 + 2 + 4 + 10 + 11 = 31
Input
6
1 2 3 4 10 11
Output
31
Code
let score = [0,0]
for (let i = 0; i < a.length; i++)
a[i] > b[i] ? score[0]++ : a[i] < b[i] ? score[1]++ : ""
return score
Alternative
let sum = (accumulator, currentValue) => accumulator + currentValue;
return ar.reduce(sum);
Diagonal Difference
Input
3
11 2 4
4 5 6
10 8 -12
Output
15
Explanation
The primary diagonal is:
11
5
-12
Sum across the primary diagonal: 11 + 5 - 12 = 4 The secondary diagonal is:
4
5
10
Code
var n = matrix.length;
var diag1 = 0;
var diag2 = 0;
for(var i=0; i<n; i++){
for(var j=0; j<n; j++){
// an element from the main diagonal
if(i === j) {
diag1 += matrix[i][j];
}
// an element from the counterdiagonal
if(i + j === n - 1){
diag2 += matrix[i][j];
}
}
}
return Math.abs(diag1 - diag2);
Plus Minus
Input
STDIN Function
----- --------
6 arr[] size n = 6
-4 3 -9 0 4 1 arr = [-4, 3, -9, 0, 4, 1]
Output
0.500000
0.333333
0.166667
Code
let positives = 0, negatives = 0, zeros = 0;
const len = arr.length || 0;
if (len > 0 && len <= 100) {
arr.map((elem, key) => {
if (elem > 0) {
positives++;
} else if (elem < 0) {
negatives++;
} else {
zeros++;
}
return elem;
});
}
console.log((positives / len) || 0);
console.log((negatives / len) || 0);
console.log((zeros / len) || 0);
Alternative
let positive = arr.filter(number => number > 0).length / arr.length;
let negative = arr.filter(number => number < 0).length / arr.length;;
let zeronums = arr.filter(number => number == 0).length / arr.length;;
return console.log(positive.toFixed(6) + '\n' + negative.toFixed(6) + '\n' + zeronums.toFixed(6))