diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-09-02 13:01:40 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-02 13:01:40 +0100 |
| commit | 91304dfdc8fe93b9616a8c8292386c21260937a7 (patch) | |
| tree | 146fbb460f90974b0e1a519578734053a2273286 /challenge-285 | |
| parent | 15aabf08869eba6262eb088c845e27852440ecfe (diff) | |
| parent | 34e50de41749881c7cf0ee5e7c7020e2cbc855d1 (diff) | |
| download | perlweeklychallenge-club-91304dfdc8fe93b9616a8c8292386c21260937a7.tar.gz perlweeklychallenge-club-91304dfdc8fe93b9616a8c8292386c21260937a7.tar.bz2 perlweeklychallenge-club-91304dfdc8fe93b9616a8c8292386c21260937a7.zip | |
Merge pull request #10757 from deadmarshal/TWC285
Twc285
Diffstat (limited to 'challenge-285')
| -rw-r--r-- | challenge-285/deadmarshal/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/java/Ch1.java | 23 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/java/Ch2.java | 16 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 | 35 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/modula-3/ch1/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/modula-3/ch2/src/Ch2.m3 | 22 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/modula-3/ch2/src/m3makefile | 5 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/perl/ch-1.pl | 19 | ||||
| -rw-r--r-- | challenge-285/deadmarshal/perl/ch-2.pl | 21 |
9 files changed, 147 insertions, 0 deletions
diff --git a/challenge-285/deadmarshal/blog.txt b/challenge-285/deadmarshal/blog.txt new file mode 100644 index 0000000000..c16d550280 --- /dev/null +++ b/challenge-285/deadmarshal/blog.txt @@ -0,0 +1 @@ +https://deadmarshal.blogspot.com/2024/09/twc285.html diff --git a/challenge-285/deadmarshal/java/Ch1.java b/challenge-285/deadmarshal/java/Ch1.java new file mode 100644 index 0000000000..8b8f8229f4 --- /dev/null +++ b/challenge-285/deadmarshal/java/Ch1.java @@ -0,0 +1,23 @@ +import java.util.HashMap; +import java.util.Map; + +public class Ch1 { + public static void main(String[] args) { + String[][] arr1 = {{"B", "C"}, {"D", "B"}, {"C", "A"}}; + String[][] arr2 = {{"A", "Z"}}; + System.out.println(no_connection(arr1)); + System.out.println(no_connection(arr2)); + } + + private static String no_connection(String[][] arr) { + Map<String, Integer> destinations = new HashMap<>(), + sources = new HashMap<>(); + for (String[] a : arr) { + sources.put(a[0], 1); + destinations.put(a[1], 1); + } + for (String d : destinations.keySet()) + if (!sources.containsKey(d)) return d; + return ""; + } +} diff --git a/challenge-285/deadmarshal/java/Ch2.java b/challenge-285/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..2763ddf32f --- /dev/null +++ b/challenge-285/deadmarshal/java/Ch2.java @@ -0,0 +1,16 @@ +public class Ch2 { + public static void main(String[] args) { + System.out.println(making_change(9)); + System.out.println(making_change(15)); + System.out.println(making_change(100)); + } + + private static int making_change(int amount) { + int[] coins = {1, 5, 10, 25, 50}; + int[] dp = new int[amount+1]; + dp[0] = 1; + for (int coin : coins) + for (int i = coin; i <= amount; ++i) dp[i] += dp[i - coin]; + return dp[amount]; + } +} diff --git a/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 b/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 new file mode 100644 index 0000000000..0cf0ee508a --- /dev/null +++ b/challenge-285/deadmarshal/modula-3/ch1/src/Ch1.m3 @@ -0,0 +1,35 @@ +MODULE Ch1 EXPORTS Main; + +IMPORT SIO,TextIntTbl; + +VAR + A1 := ARRAY[0..2],[0..1] OF TEXT{ + ARRAY[0..1] OF TEXT{"B","C"}, + ARRAY[0..1] OF TEXT{"D","B"}, + ARRAY[0..1] OF TEXT{"C","A"}}; + A2 := ARRAY[0..0],[0..1] OF TEXT{ + ARRAY OF TEXT{"A","Z"}}; + +PROCEDURE NoConnection(VAR A:ARRAY OF ARRAY OF TEXT):TEXT = + VAR + Destinations,Sources := NEW(TextIntTbl.Default).init(NUMBER(A)); + It:TextIntTbl.Iterator; + K:TEXT := ""; + V:INTEGER; + BEGIN + FOR I := FIRST(A) TO LAST(A) DO + EVAL Sources.put(A[I,0],1); + EVAL Destinations.put(A[I,1],1); + END; + It := Destinations.iterate(); + WHILE It.next(K,V) DO + IF Destinations.get(K,V) THEN RETURN K END + END; + RETURN "" + END NoConnection; + +BEGIN + SIO.PutText(NoConnection(A1) & "\n"); + SIO.PutText(NoConnection(A2) & "\n") +END Ch1. + diff --git a/challenge-285/deadmarshal/modula-3/ch1/src/m3makefile b/challenge-285/deadmarshal/modula-3/ch1/src/m3makefile new file mode 100644 index 0000000000..9f66e4a51f --- /dev/null +++ b/challenge-285/deadmarshal/modula-3/ch1/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch1") +program("ch1") + diff --git a/challenge-285/deadmarshal/modula-3/ch2/src/Ch2.m3 b/challenge-285/deadmarshal/modula-3/ch2/src/Ch2.m3 new file mode 100644 index 0000000000..9d1daec876 --- /dev/null +++ b/challenge-285/deadmarshal/modula-3/ch2/src/Ch2.m3 @@ -0,0 +1,22 @@ +MODULE Ch2 EXPORTS Main; + +IMPORT SIO; + +PROCEDURE MakingChange(READONLY A:CARDINAL):CARDINAL = + VAR + Coins:ARRAY[0..4] OF CARDINAL := ARRAY[0..4] OF CARDINAL{1,5,10,25,50}; + DP:REF ARRAY OF CARDINAL := NEW(REF ARRAY OF CARDINAL,A+1); + BEGIN + DP[0] := 1; + FOR I := FIRST(Coins) TO LAST(Coins) DO + FOR J := Coins[I] TO A DO INC(DP[J],DP[J-Coins[I]]) END + END; + RETURN DP[A] + END MakingChange; + +BEGIN + SIO.PutInt(MakingChange(9)); SIO.Nl(); + SIO.PutInt(MakingChange(15)); SIO.Nl(); + SIO.PutInt(MakingChange(100)); SIO.Nl() +END Ch2. + diff --git a/challenge-285/deadmarshal/modula-3/ch2/src/m3makefile b/challenge-285/deadmarshal/modula-3/ch2/src/m3makefile new file mode 100644 index 0000000000..798c627ef3 --- /dev/null +++ b/challenge-285/deadmarshal/modula-3/ch2/src/m3makefile @@ -0,0 +1,5 @@ +import("libm3") +import("libsio") +implementation("Ch2") +program("ch2") + diff --git a/challenge-285/deadmarshal/perl/ch-1.pl b/challenge-285/deadmarshal/perl/ch-1.pl new file mode 100644 index 0000000000..959064cc61 --- /dev/null +++ b/challenge-285/deadmarshal/perl/ch-1.pl @@ -0,0 +1,19 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub no_connection{ + my ($arr) = @_; + my (%destinations,%sources); + foreach my $r(@{$arr}){ + $sources{$r->[0]} = $destinations{$r->[1]} = 1; + } + foreach my $d(keys %destinations){ + return $d unless exists $sources{$d} + } + "" +} + +printf "%s\n",no_connection([["B","C"],["D","B"],["C","A"]]); +printf "%s\n",no_connection([["A","Z"]]); + diff --git a/challenge-285/deadmarshal/perl/ch-2.pl b/challenge-285/deadmarshal/perl/ch-2.pl new file mode 100644 index 0000000000..74397ab8d8 --- /dev/null +++ b/challenge-285/deadmarshal/perl/ch-2.pl @@ -0,0 +1,21 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +sub making_change{ + my ($amount) = @_; + my @coins = (1,5,10,25,50); + my @dp = (0) x ($amount+1); + $dp[0] = 1; + foreach my $c(@coins){ + foreach my $i($c..$amount) { + $dp[$i] += $dp[$i-$c] + } + } + $dp[$amount] +} + +printf "%d\n",making_change(9); +printf "%d\n",making_change(15); +printf "%d\n",making_change(100); + |
