aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2024-07-04 08:35:53 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2024-07-04 08:35:53 +0330
commit5d778b7b2bef2a6a478857b573d7796ffc214f77 (patch)
tree2694fb01780ab2fae079354990514591482e3e9f
parentd3cd6c8a7072e6f3566176284074c04501bfe8e3 (diff)
downloadperlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.tar.gz
perlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.tar.bz2
perlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.zip
TWC276
-rw-r--r--challenge-276/deadmarshal/blog.txt1
-rw-r--r--challenge-276/deadmarshal/c/ch-1.c23
-rw-r--r--challenge-276/deadmarshal/c/ch-2.c22
-rw-r--r--challenge-276/deadmarshal/java/Ch1.java15
-rw-r--r--challenge-276/deadmarshal/java/Ch2.java18
-rw-r--r--challenge-276/deadmarshal/modula-3/ch1/src/Ch1.m326
-rw-r--r--challenge-276/deadmarshal/modula-3/ch1/src/m3makefile5
-rw-r--r--challenge-276/deadmarshal/modula-3/ch2/src/Ch2.m333
-rw-r--r--challenge-276/deadmarshal/modula-3/ch2/src/m3makefile5
-rw-r--r--challenge-276/deadmarshal/perl/ch-1.pl18
-rw-r--r--challenge-276/deadmarshal/perl/ch-2.pl14
11 files changed, 180 insertions, 0 deletions
diff --git a/challenge-276/deadmarshal/blog.txt b/challenge-276/deadmarshal/blog.txt
new file mode 100644
index 0000000000..59d7419824
--- /dev/null
+++ b/challenge-276/deadmarshal/blog.txt
@@ -0,0 +1 @@
+https://deadmarshal.blogspot.com/2024/07/twc276.html
diff --git a/challenge-276/deadmarshal/c/ch-1.c b/challenge-276/deadmarshal/c/ch-1.c
new file mode 100644
index 0000000000..2042f746e2
--- /dev/null
+++ b/challenge-276/deadmarshal/c/ch-1.c
@@ -0,0 +1,23 @@
+#include<stdio.h>
+
+size_t complete_day(int *arr,size_t sz)
+{
+ size_t count = 0;
+ for(size_t i = 0; i < sz-1; ++i)
+ for(size_t j = i+1; j < sz; ++j)
+ if((arr[i] + arr[j]) % 24 == 0) count++;
+ return count;
+}
+
+int main(void)
+{
+ int arr1[] = {12,12,30,24,24};
+ int arr2[] = {72,48,24,55};
+ int arr3[] = {12,18,24};
+ size_t sz1 = 5,sz2 = 4,sz3 = 3;
+ printf("%zu\n",complete_day(arr1,sz1));
+ printf("%zu\n",complete_day(arr2,sz2));
+ printf("%zu\n",complete_day(arr3,sz3));
+ return 0;
+}
+ \ No newline at end of file
diff --git a/challenge-276/deadmarshal/c/ch-2.c b/challenge-276/deadmarshal/c/ch-2.c
new file mode 100644
index 0000000000..6fbfc19969
--- /dev/null
+++ b/challenge-276/deadmarshal/c/ch-2.c
@@ -0,0 +1,22 @@
+#include<stdio.h>
+
+size_t maximum_frequency(const int *arr,size_t sz)
+{
+ size_t count = 0;
+ int max = arr[0];
+ int hash[10] = {0};
+ for(size_t i = 0; i < sz; ++i) hash[arr[i]]++;
+ for(size_t i = 0; i < 10; ++i) if(hash[i] > max) max = hash[i];
+ for(size_t i = 0; i < 10; ++i) if(hash[i] == max) count += hash[i];
+ return count;
+}
+
+int main(void)
+{
+ int arr1[] = {1,2,2,4,1,5};
+ int arr2[] = {1,2,3,4,5};
+ size_t sz1 = 6,sz2 = 5;
+ printf("%zu\n",maximum_frequency(arr1,sz1));
+ printf("%zu\n",maximum_frequency(arr2,sz2));
+ return 0;
+}
diff --git a/challenge-276/deadmarshal/java/Ch1.java b/challenge-276/deadmarshal/java/Ch1.java
new file mode 100644
index 0000000000..ed0f616200
--- /dev/null
+++ b/challenge-276/deadmarshal/java/Ch1.java
@@ -0,0 +1,15 @@
+public class Ch1 {
+ public static void main(String[] args) {
+ System.out.println(complete_day(new int[]{12, 12, 30, 24, 24}));
+ System.out.println(complete_day(new int[]{72, 48, 24, 55}));
+ System.out.println(complete_day(new int[]{12, 18, 24}));
+ }
+
+ private static int complete_day(int[] arr) {
+ int count = 0;
+ for (int i = 0; i < arr.length - 1; ++i)
+ for (int j = i + 1; j < arr.length; ++j)
+ if ((arr[i] + arr[j]) % 24 == 0) count++;
+ return count;
+ }
+}
diff --git a/challenge-276/deadmarshal/java/Ch2.java b/challenge-276/deadmarshal/java/Ch2.java
new file mode 100644
index 0000000000..c8237e9f2b
--- /dev/null
+++ b/challenge-276/deadmarshal/java/Ch2.java
@@ -0,0 +1,18 @@
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+public class Ch2 {
+ public static void main(String[] args) {
+ System.out.println(maximum_frequency(new int[]{1, 2, 2, 4, 1, 5}));
+ System.out.println(maximum_frequency(new int[]{1, 2, 3, 4, 5}));
+ }
+
+ private static int maximum_frequency(int[] arr) {
+ Map<Integer, Integer> hash = new HashMap<>();
+ for (int e : arr) hash.put(e, hash.getOrDefault(e, 0) + 1);
+ int max = Collections.max(hash.values());
+ return (int) hash.keySet().stream()
+ .filter(e -> hash.get(e) == max).count() * max;
+ }
+}
diff --git a/challenge-276/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-276/deadmarshal/modula-3/ch1/src/Ch1.m3
new file mode 100644
index 0000000000..bbc46288e2
--- /dev/null
+++ b/challenge-276/deadmarshal/modula-3/ch1/src/Ch1.m3
@@ -0,0 +1,26 @@
+MODULE Ch1 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A1:ARRAY[0..4] OF CARDINAL := ARRAY OF CARDINAL{12,12,30,24,24};
+ A2:ARRAY[0..3] OF CARDINAL := ARRAY OF CARDINAL{72,48,24,55};
+ A3:ARRAY[0..2] OF CARDINAL := ARRAY OF CARDINAL{12,18,24};
+
+PROCEDURE CompleteDay(VAR A:ARRAY OF CARDINAL):CARDINAL =
+VAR Count:CARDINAL := 0;
+BEGIN
+ FOR I := FIRST(A) TO LAST(A)-1 DO
+ FOR J := I+1 TO LAST(A) DO
+ IF (A[I] + A[J]) MOD 24 = 0 THEN INC(Count) END
+ END;
+ END;
+ RETURN Count
+END CompleteDay;
+
+BEGIN
+ SIO.PutInt(CompleteDay(A1)); SIO.Nl();
+ SIO.PutInt(CompleteDay(A2)); SIO.Nl();
+ SIO.PutInt(CompleteDay(A3)); SIO.Nl();
+END Ch1.
+
diff --git a/challenge-276/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-276/deadmarshal/modula-3/ch1/src/m3makefile
new file mode 100644
index 0000000000..9f66e4a51f
--- /dev/null
+++ b/challenge-276/deadmarshal/modula-3/ch1/src/m3makefile
@@ -0,0 +1,5 @@
+import("libm3")
+import("libsio")
+implementation("Ch1")
+program("ch1")
+
diff --git a/challenge-276/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-276/deadmarshal/modula-3/ch2/src/Ch2.m3
new file mode 100644
index 0000000000..e8c706f25f
--- /dev/null
+++ b/challenge-276/deadmarshal/modula-3/ch2/src/Ch2.m3
@@ -0,0 +1,33 @@
+MODULE Ch2 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A1:ARRAY[0..5] OF INTEGER := ARRAY OF INTEGER{1,2,2,4,1,5};
+ A2:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{1,2,3,4,5};
+
+PROCEDURE MaximumFrequency(VAR A:ARRAY OF INTEGER):INTEGER =
+VAR
+ Sum:INTEGER := 0;
+ Max:INTEGER := A[FIRST(A)];
+ Hash:ARRAY[0..9] OF INTEGER := ARRAY[0..9] OF INTEGER{0,..};
+BEGIN
+ FOR I := FIRST(A) TO LAST(A) DO INC(Hash[A[I]]) END;
+ FOR I := FIRST(Hash) TO LAST(Hash) DO
+ IF Hash[I] > Max THEN
+ Max := Hash[I]
+ END;
+ END;
+ FOR I := FIRST(Hash) TO LAST(Hash) DO
+ IF Hash[I] = Max THEN
+ INC(Sum,Hash[I])
+ END
+ END;
+ RETURN Sum
+END MaximumFrequency;
+
+BEGIN
+ SIO.PutInt(MaximumFrequency(A1)); SIO.Nl();
+ SIO.PutInt(MaximumFrequency(A2)); SIO.Nl();
+END Ch2.
+
diff --git a/challenge-276/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-276/deadmarshal/modula-3/ch2/src/m3makefile
new file mode 100644
index 0000000000..798c627ef3
--- /dev/null
+++ b/challenge-276/deadmarshal/modula-3/ch2/src/m3makefile
@@ -0,0 +1,5 @@
+import("libm3")
+import("libsio")
+implementation("Ch2")
+program("ch2")
+
diff --git a/challenge-276/deadmarshal/perl/ch-1.pl b/challenge-276/deadmarshal/perl/ch-1.pl
new file mode 100644
index 0000000000..5061a27820
--- /dev/null
+++ b/challenge-276/deadmarshal/perl/ch-1.pl
@@ -0,0 +1,18 @@
+#!usr/bin/env perl
+use strict;
+use warnings;
+
+sub complete_day{
+ my ($arr) = @_;
+ my $count = 0;
+ foreach my $i(0..$#$arr-1){
+ foreach my $j($i+1..$#$arr){
+ $count++ if(($arr->[$i] + $arr->[$j]) % 24 == 0)
+ }
+ }
+ $count
+}
+
+printf "%d\n",complete_day([12,12,30,24,24]);
+printf "%d\n",complete_day([72,48,24,55]);
+printf "%d\n",complete_day([12,18,24]);
diff --git a/challenge-276/deadmarshal/perl/ch-2.pl b/challenge-276/deadmarshal/perl/ch-2.pl
new file mode 100644
index 0000000000..8e4817a0cd
--- /dev/null
+++ b/challenge-276/deadmarshal/perl/ch-2.pl
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use List::Util qw(max sum0);
+
+sub maximum_frequency{
+ my %h;
+ $h{$_}++ foreach @{$_[0]};
+ my $max = max values %h;
+ sum0 grep {$_ if $_ == $max} values %h
+}
+
+printf "%d\n",maximum_frequency([1,2,2,4,1,5]);
+printf "%d\n",maximum_frequency([1,2,3,4,5]);