aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHumberto Massa <humbertomassa@gmail.com>2022-11-14 14:17:24 -0300
committerHumberto Massa <humbertomassa@gmail.com>2022-11-14 14:17:24 -0300
commit1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59 (patch)
tree0eca0190ef5751d37ed6c0a81e4f7fadad4de037
parent377a415bb53d1ed0b16b70d190bb444241216036 (diff)
downloadperlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.tar.gz
perlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.tar.bz2
perlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.zip
my solutions to challenge 191
-rw-r--r--challenge-191/massa/raku/ch-1.raku34
-rw-r--r--challenge-191/massa/raku/ch-2.raku43
2 files changed, 77 insertions, 0 deletions
diff --git a/challenge-191/massa/raku/ch-1.raku b/challenge-191/massa/raku/ch-1.raku
new file mode 100644
index 0000000000..feed9b8b02
--- /dev/null
+++ b/challenge-191/massa/raku/ch-1.raku
@@ -0,0 +1,34 @@
+
+
+#!/usr/bin/env raku
+
+=begin pod
+
+Week 191:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-191
+
+Task #1: Twice Largest
+
+ You are given list of integers, @list.
+
+ Write a script to find out whether the largest item in the list is at least
+ twice as large as each of the other items.
+
+=end pod
+
+use Test;
+
+is False, twice-largest <1 2 3 4>;
+is True, twice-largest <1 2 0 5>;
+is True, twice-largest <2 6 3 1>;
+is False, twice-largest <4 5 2 3>;
+
+done-testing;
+
+sub twice-largest(@list) {
+ my @li = @list».Int.sort(-*);
+ [&&] @li[0] X≥ @li[1..*].map(2 × *)
+}
+
+
diff --git a/challenge-191/massa/raku/ch-2.raku b/challenge-191/massa/raku/ch-2.raku
new file mode 100644
index 0000000000..9bfe7b51a8
--- /dev/null
+++ b/challenge-191/massa/raku/ch-2.raku
@@ -0,0 +1,43 @@
+
+
+#!/usr/bin/env raku
+
+=begin pod
+
+Week 191:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-191
+
+Task #2: Cute List
+
+ You are given an integer, 0 < $n <= 15.
+
+ Write a script to find the number of orderings of numbers that form a cute list.
+
+ With an input @list = (1, 2, 3, .. $n) for positive integer $n, an ordering of @list is cute if for every entry, indexed with a base of 1, either
+
+=begin code
+
+ 1) $list[$i] is evenly divisible by $i
+ or
+ 2) $i is evenly divisible by $list[$i]
+
+=end code
+
+=end pod
+
+use Test;
+
+is 2, cute-list 2;
+is 3, cute-list 3;
+is 8, cute-list 4;
+
+done-testing;
+
+subset Valid of Int where 0 < * ≤ 15;
+
+sub cute-list(Valid \n) {
+ + (1 .. n).permutations.grep: -> @list {
+ @list.pairs.map({ (.key + 1) %% .value || .value %% (.key + 1) }).all.so
+ }
+}