aboutsummaryrefslogtreecommitdiff
path: root/challenge-277/luca-ferrari/pljava/src/main/java
diff options
context:
space:
mode:
authorDave Jacoby <jacoby.david@gmail.com>2024-07-29 09:34:36 -0400
committerDave Jacoby <jacoby.david@gmail.com>2024-07-29 09:34:36 -0400
commit4618fa1a2b0f570de8f9d4c1b4f3ee35b1eac24f (patch)
treeb2ca57b310a5af254d926402828f13cc3c58d650 /challenge-277/luca-ferrari/pljava/src/main/java
parenta1e7bd64bcb27d97e41f62875aed3e07fc597e94 (diff)
parenta2a0393bed0a645143ff47e7c2ef85c67fa16528 (diff)
downloadperlweeklychallenge-club-4618fa1a2b0f570de8f9d4c1b4f3ee35b1eac24f.tar.gz
perlweeklychallenge-club-4618fa1a2b0f570de8f9d4c1b4f3ee35b1eac24f.tar.bz2
perlweeklychallenge-club-4618fa1a2b0f570de8f9d4c1b4f3ee35b1eac24f.zip
Merge branch 'master' of https://github.com/manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-277/luca-ferrari/pljava/src/main/java')
-rw-r--r--challenge-277/luca-ferrari/pljava/src/main/java/Task1.java27
-rw-r--r--challenge-277/luca-ferrari/pljava/src/main/java/Task2.java15
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java b/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java
new file mode 100644
index 0000000000..157decedd7
--- /dev/null
+++ b/challenge-277/luca-ferrari/pljava/src/main/java/Task1.java
@@ -0,0 +1,27 @@
+public static int task1_pljava( String[] words1, String[] words2 ) throws SQLException {
+ logger.log( Level.INFO, "Entering pwc277.task1_pljava" );
+
+ final Map<String, Integer[]> counting = new HashMap<String, Integer[]>();
+
+ Stream.of( words1 ).forEach( current -> {
+ Integer[] count = { 0, 0 };
+ counting.putIfAbsent( current, count );
+ count = counting.get( current );
+ count[ 0 ]++;
+ counting.put( current, count );
+ } );
+
+
+ Stream.of( words2 ).forEach( current -> {
+ Integer[] count = { 0, 0 };
+ counting.putIfAbsent( current, count );
+ count = counting.get( current );
+ count[ 1 ]++;
+ counting.put( current, count );
+ } );
+
+ return (int) counting.entrySet().stream().filter( current -> {
+ Integer[] count = current.getValue();
+ return count[ 0 ] == count[ 1 ] && count[ 0 ] == 1;
+ } ).count();
+}
diff --git a/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java b/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java
new file mode 100644
index 0000000000..87c0dde2d0
--- /dev/null
+++ b/challenge-277/luca-ferrari/pljava/src/main/java/Task2.java
@@ -0,0 +1,15 @@
+public static final int task2_pljava( int[] numbers ) throws SQLException {
+ logger.log( Level.INFO, "Entering pwc277.task2_pljava" );
+
+ final int[] c = new int[]{ 0 };
+ IntStream.range( 0, numbers.length - 1 )
+ .forEach( i -> {
+ c[ 0 ] += IntStream.range( i + 1, numbers.length )
+ .filter( j -> {
+ return numbers[ i ] != numbers[ j ]
+ && Math.abs( numbers[ i ] - numbers[ j ] ) < Math.min( numbers[ i ], numbers[ j ] );
+ } ).count();
+ } );
+
+ return c[ 0 ];
+}