Skip to content

Edvins Antonovs

Compare the Triplets code challenge

My approach to solving HackerRank’s Compare the Triplets code challenge.


Problem

Alice and Bob each created one problem for HackerRank. A reviewer rates the two challenges, awarding points on a scale from 1 to 100 for three categories: problem clarity, originality, and difficulty.

The rating for Alice's challenge is the triplet a = (a[0], a[1], a[2]), and the rating for Bob's challenge is the triplet b = (b[0], b[1], b[2]).

The task is to find their comparison points by comparing a[0] with b[0], a[1] with b[1], and a[2] with b[2].

  • If a[i] > b[i], then Alice is awarded 1 point.
  • If a[i] < b[i], then Bob is awarded 1 point.
  • If a[i] = b[i], then neither person receives a point.

Comparison points is the total points a person earned.

Given a and b, determine their respective comparison points.

Example

a = [1, 2, 3]

b = [3, 2, 1]

For elements 0, Bob is awarded a point because a[0].

For the equal elements a[1] and b[1], no points are earned.

Finally, for elements 2, a[2] > b[2] so Alice receives a point.

The return array is [1, 1] with Alice's score first and Bob's second.

Return

int[2]: Alice's score is in the first position, and Bob's score is in the second.

Sample Input

15 6 7
23 6 10

Sample Output

11 1

Solution

We start by creating a few variables to hold the comparison results.

Both arrays are equal in length, so we can do a for loop based on any array size. Then during each loop, we compare values of both arrays, and if a[i] is bigger than b[i], then we bump aScore by 1. Else we bump the score for bScore.

Then we return the results of the scores as an array.

1function compareTriplets(a, b) {
2 let aScore = 0,
3 bScore = 0;
4
5 for (let i = 0; i < a.length; i++) {
6 if (a[i] > b[i]) {
7 aScore++;
8 } else if (a[i] < b[i]) {
9 bScore++;
10 }
11 }
12
13 return [aScore, bScore];
14}
© 2023 by Edvins Antonovs. All rights reserved.