aboutsummaryrefslogtreecommitdiff
path: root/challenge-199
diff options
context:
space:
mode:
authorboldcaml <boldcaml@proton.me>2023-01-09 10:26:35 -0600
committerboldcaml <boldcaml@proton.me>2023-01-09 10:26:35 -0600
commit47e5d4fe1a78c50e54d7884d0fec4c989fa2bce0 (patch)
tree068322c8c74f2f1d9eb44a9107265e8c898e5f97 /challenge-199
parentb8a1cd65abd85f6cf9df5b9dc5bc34677763b531 (diff)
downloadperlweeklychallenge-club-47e5d4fe1a78c50e54d7884d0fec4c989fa2bce0.tar.gz
perlweeklychallenge-club-47e5d4fe1a78c50e54d7884d0fec4c989fa2bce0.tar.bz2
perlweeklychallenge-club-47e5d4fe1a78c50e54d7884d0fec4c989fa2bce0.zip
finish day 199
Diffstat (limited to 'challenge-199')
-rw-r--r--challenge-199/rawleyfowler/README.md4
-rw-r--r--challenge-199/rawleyfowler/raku/ch-1.raku10
-rw-r--r--challenge-199/rawleyfowler/raku/ch-2.raku16
3 files changed, 28 insertions, 2 deletions
diff --git a/challenge-199/rawleyfowler/README.md b/challenge-199/rawleyfowler/README.md
index 4d4b3f88f8..bdb7081cb4 100644
--- a/challenge-199/rawleyfowler/README.md
+++ b/challenge-199/rawleyfowler/README.md
@@ -1,5 +1,5 @@
## How to run
```bash
-raku raku/ch-1.raku '2 5 8 1' # Find gap pairs
-raku raku/ch-2.raku '100' # Find primes
+raku raku/ch-1.raku '1 2 3 1 1 3' # Find good pairs
+raku raku/ch-2.raku '3 0 1 1 9 7' 7 2 3 # Find good triplets
```
diff --git a/challenge-199/rawleyfowler/raku/ch-1.raku b/challenge-199/rawleyfowler/raku/ch-1.raku
new file mode 100644
index 0000000000..b8d22b8e08
--- /dev/null
+++ b/challenge-199/rawleyfowler/raku/ch-1.raku
@@ -0,0 +1,10 @@
+my @lst = @*ARGS[0].split: /\s/;
+die 'No list provided' unless @lst.elems > 0;
+
+loop (my $i = 0; $i < @lst.elems; $i++) {
+ state $count = 0;
+ loop (my $j = $i + 1; $j < @lst.elems; $j++) {
+ $count++ if @lst[$i] == @lst[$j];
+ }
+ say $count if $i + 1 == @lst.elems;
+}
diff --git a/challenge-199/rawleyfowler/raku/ch-2.raku b/challenge-199/rawleyfowler/raku/ch-2.raku
new file mode 100644
index 0000000000..654f21d055
--- /dev/null
+++ b/challenge-199/rawleyfowler/raku/ch-2.raku
@@ -0,0 +1,16 @@
+use v6;
+sub MAIN($lst, $x, $y, $z) {
+ my @lst = $lst.split(/\s/) || die 'Bad list passed';
+ my $n = @lst.elems - 1;
+ my $count = 0;
+ for 0..$n -> $i {
+ for ($i+1)..$n -> $j {
+ for ($j+1)..$n -> $k {
+ if abs(@lst[$i] - @lst[$j]) <= $x &&
+ abs(@lst[$j] - @lst[$k]) <= $y &&
+ abs(@lst[$i] - @lst[$k]) <= $z { $count++ }
+ }
+ }
+ }
+ say $count;
+}