Hackerrank – Two Arrays
Popis problému Celý popis zadania sa nacháza – Hackerrank. Riešenie Usporiadl som obidve zadané polia. array1 vzostupne, array2 zostupne. Spočítaj prvky na každej i-tej pozícii, či je ich súčet menší ako zadaný súčet. Vytvoril som riešenie v týchto programovacích jazykoch: Java JavaScript Scala Ruby Všetky riešenia sú dostupné aj na mojom GitHub profile. Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import java.util.*; public class TwoArrays { private static class Descending implements Comparator<Integer> { @Override public int compare(Integer i, Integer j) { return j - i; } } public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int tests = stdin.nextInt(); for(int i = 0; i < tests; i++) { int n = stdin.nextInt(); int sum = stdin.nextInt(); Integer[] array1 = new Integer[n]; Integer[] array2 = new Integer[n]; for(int j = 0; j < n; j++){ array1[j] = stdin.nextInt(); } for(int j = 0; j < n; j++){ array2[j] = stdin.nextInt(); } Arrays.sort(array1); Arrays.sort(array2, new Descending()); System.out.println(isCorrect(array1, array2, sum)); } stdin.close(); } private static String isCorrect(Integer[] array1, Integer[] array2, int sum) { for(int i = 0; i < array1.length; i++) { if(array1[i] + array2[i] < sum) { return "NO"; } } return "YES"; } } |