Skip to content

Instantly share code, notes, and snippets.

@Arpitjain85
Created March 28, 2022 20:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Arpitjain85/2187178781d830c421fe5c02ab91a4e6 to your computer and use it in GitHub Desktop.
Save Arpitjain85/2187178781d830c421fe5c02ab91a4e6 to your computer and use it in GitHub Desktop.
HackerRank Problem Solving Certification Test Solution
package com.arpit;
import java.util.*;
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'findSum' function below.
*
* The function is expected to return a LONG_INTEGER_ARRAY.
* The function accepts following parameters:
* 1. INTEGER_ARRAY numbers
* 2. 2D_INTEGER_ARRAY queries
*/
public static List<Long> findSum(List<Integer> numbers, List<List<Integer>> queries) {
// Write your code here
List<Long> ans = new ArrayList<>();
for (int i = 0; i < queries.size(); i++) {
int start = queries.get(i).get(0);
int end = queries.get(i).get(1);
int zero = queries.get(i).get(2);
long sum = 0;
for (int j = start-1; j < end; j++) {
if (numbers.get(j)==0){
sum += zero;
}
else {
sum += numbers.get(j);
}
}
ans.add(sum);
}
return ans;
}
}
class HR_ProblemSolving1 {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int numbersCount = Integer.parseInt(bufferedReader.readLine().trim());
List<Integer> numbers = IntStream.range(0, numbersCount).mapToObj(i -> {
try {
return bufferedReader.readLine().replaceAll("\\s+$", "");
} catch (IOException ex) {
throw new RuntimeException(ex);
}
})
.map(String::trim)
.map(Integer::parseInt)
.collect(toList());
int queriesRows = Integer.parseInt(bufferedReader.readLine().trim());
int queriesColumns = Integer.parseInt(bufferedReader.readLine().trim());
List<List<Integer>> queries = new ArrayList<>();
IntStream.range(0, queriesRows).forEach(i -> {
try {
queries.add(
Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
.map(Integer::parseInt)
.collect(toList())
);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
});
List<Long> result = Result.findSum(numbers, queries);
bufferedWriter.write(
result.stream()
.map(Object::toString)
.collect(joining("\n"))
+ "\n"
);
bufferedReader.close();
bufferedWriter.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment