Algorithm
Problem Name: Algorithms -
In this HackerRank Functions in Algorithms - Java programming problem solution,
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.
Function Description
Complete the function compareTriplets in the editor below.
compareTriplets has the following parameter(s):
- int a[3]: Alice's challenge rating
- int b[3]: Bob's challenge rating
Return
- int[2]: Alice's score is in the first position, and Bob's score is in the second.
Input Format
The first line contains 3 space-separated integers, a[0], a[1], and a[2], the respective values in triplet a.
The second line contains 3 space-separated integers, b[0], b[1], and b[2], the respective values in triplet b.
Constraints
- 1 ≤ a[i] ≤ 100
- 1 ≤ b[i] ≤ 100
Sample Input 0
5 6 7
3 6 10
Sample Output 0
1 1
Code Examples
#1 Code Example with C Programming
Code -
C Programming
#include <stdio.h>
int main(){
int alice[3];
int bob[3];
scanf("%d %d %d", &alice[0], &alice[1], &alice[2]);
scanf("%d %d %d", &bob[0], &bob[1], &bob[2]);
int score_alice = 0;
int score_bob = 0;
for (int i = 0; i < 3; i++) {
if (alice[i] > bob[i])
score_alice++;
if (bob[i] > alice[i])
score_bob++;
}
printf("%d %d\n", score_alice, score_bob);
return 0;
}
Copy The Code &
Try With Live Editor
#2 Code Example with C++ Programming
Code -
C++ Programming
#include <bits/stdc++.h>
using namespace std;
string ltrim(const string &);
string rtrim(const string &);
vector split(const string &);
// Complete the compareTriplets function below.
vector compareTriplets(vector a, vector b) {
vector result;
int aliceScore = 0;
int bobScore = 0;
for(int i = 0;i < a.size(); i++){
if(a[i] > b[i])
aliceScore ++;
else if(b[i] > a[i])
bobScore++;
}
result.push_back(aliceScore);
result.push_back(bobScore);
return result;
}
int main()
{
ofstream fout(getenv("OUTPUT_PATH"));
string a_temp_temp;
getline(cin, a_temp_temp);
vector a_temp = split(rtrim(a_temp_temp));
vector a(3);
for (int i = 0; i < 3; i++) {
int a_item = stoi(a_temp[i]);
a[i] = a_item;
}
string b_temp_temp;
getline(cin, b_temp_temp);
vector b_temp = split(rtrim(b_temp_temp));
vector b(3);
for (int i = 0; i < 3; i++) {
int b_item = stoi(b_temp[i]);
b[i] = b_item;
}
vector result = compareTriplets(a, b);
for (int i = 0; i < result.size(); i++) {
fout << result[i];
if (i != result.size() - 1) {
fout << " ";
}
}
fout << "\n";
fout.close();
return 0;
}
string ltrim(const string &str) {
string s(str);
s.erase(
s.begin(),
find_if(s.begin(), s.end(), not1(ptr_fun(isspace)))
);
return s;
}
string rtrim(const string &str) {
string s(str);
s.erase(
find_if(s.rbegin(), s.rend(), not1(ptr_fun(isspace))).base(),
s.end()
);
return s;
}
vector split(const string &str) {
vector tokens;
string::size_type start = 0;
string::size_type end = 0;
while ((end = str.find(" ", start)) != string::npos) {
tokens.push_back(str.substr(start, end - start));
start = end + 1;
}
tokens.push_back(str.substr(start));
return tokens;
}
Copy The Code &
Try With Live Editor
#3 Code Example with Java Programming
Code -
Java Programming
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
//given values for ai and bi
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a0 = in.nextInt();
int a1 = in.nextInt();
int a2 = in.nextInt();
int b0 = in.nextInt();
int b1 = in.nextInt();
int b2 = in.nextInt();
//initialize both Alice's and Bob's points to 0
int aliceCount = 0;
int bobCount = 0;
if(a0 > b0){
aliceCount++;
}
else if(a0 < b0){
bobCount++;
}
if(a1 > b1){
aliceCount++;
}
else if (a1 < b1){
bobCount++;
}
if(a2 > b2){
aliceCount++;
}
else if(a2 < b2) {
bobCount++;
}
System.out.println(aliceCount + " " + bobCount);
}
}
Copy The Code &
Try With Live Editor
#4 Code Example with Javascript Programming
Code -
Javascript Programming
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
// Complete the compareTriplets function below.
function compareTriplets(a, b) {
let p1 = 0, p2 = 0, aliceScore = 0, bobScore = 0;
while (p1 < a.length && p2 < b.length) {
if (a[p1] > b[p2]) {
aliceScore += 1;
p1 += 1;
p2 += 1;
} else if (a[p1] < b[p2]) {
bobScore += 1;
p1 += 1;
p2 += 1;
} else {
p1 += 1;
p2 += 1;
}
}
return [aliceScore, bobScore];
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const a = readLine().replace(/\s+$/g, '').split(' ').map(aTemp => parseInt(aTemp, 10));
const b = readLine().replace(/\s+$/g, '').split(' ').map(bTemp => parseInt(bTemp, 10));
const result = compareTriplets(a, b);
ws.write(result.join(' ') + '\n');
ws.end();
}
Copy The Code &
Try With Live Editor
#5 Code Example with C# Programming
Code -
C# Programming
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;
class Solution {
// Complete the compareTriplets function below.
static List compareTriplets(List a, List b) {
int aliceScore = 0;
int bobScore = 0;
for (int i = 0; i < a.Count; i++)
{
if (a[i] == b[i]) continue;
if (a[i] > b[i]) { aliceScore++; } else { bobScore++; }
}
return new List { aliceScore, bobScore };
}
static void Main(string[] args) {
TextWriter textWriter = new StreamWriter(@System.Environment.GetEnvironmentVariable("OUTPUT_PATH"), true);
List a = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(aTemp => Convert.ToInt32(aTemp)).ToList();
List b = Console.ReadLine().TrimEnd().Split(' ').ToList().Select(bTemp => Convert.ToInt32(bTemp)).ToList();
List result = compareTriplets(a, b);
textWriter.WriteLine(String.Join(" ", result));
textWriter.Flush();
textWriter.Close();
}
}
Copy The Code &
Try With Live Editor
#6 Code Example with Python Programming
Code -
Python Programming
import math
import os
import random
import re
import sys
def compareTriplets(a, b):
sa = 0
sb = 0
for i in range(0,3):
if a[i] > b[i]:
sa += 1
if a[i] < b[i]:
sb += 1
return [sa,sb]
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
a = list(map(int, input().rstrip().split()))
b = list(map(int, input().rstrip().split()))
result = compareTriplets(a, b)
fptr.write(' '.join(map(str, result)))
fptr.write('\n')
fptr.close()
Copy The Code &
Try With Live Editor