diff options
| author | deadmarshal <adeadmarshal@gmail.com> | 2024-07-04 08:35:53 +0330 |
|---|---|---|
| committer | deadmarshal <adeadmarshal@gmail.com> | 2024-07-04 08:35:53 +0330 |
| commit | 5d778b7b2bef2a6a478857b573d7796ffc214f77 (patch) | |
| tree | 2694fb01780ab2fae079354990514591482e3e9f | |
| parent | d3cd6c8a7072e6f3566176284074c04501bfe8e3 (diff) | |
| download | perlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.tar.gz perlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.tar.bz2 perlweeklychallenge-club-5d778b7b2bef2a6a478857b573d7796ffc214f77.zip | |
TWC276
| -rw-r--r-- | challenge-276/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/c/ch-1.c | 23 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/c/ch-2.c | 22 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/java/Ch1.java | 15 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/java/Ch2.java | 18 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/modula-3/ch1/src/Ch1.m3 | 26 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/modula-3/ch2/src/Ch2.m3 | 33 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/modula-3/ch2/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/perl/ch-1.pl | 18 | ||||
| -rw-r--r-- | challenge-276/deadmarshal/perl/ch-2.pl | 14 |
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]); |
