aboutsummaryrefslogtreecommitdiff
path: root/challenge-048/markus-holzer
diff options
context:
space:
mode:
authorMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-02-17 21:23:07 +0100
committerMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-02-17 21:23:07 +0100
commitf40eb4e6815a4277c2c1285a123b2780c2dde8d3 (patch)
tree8dadbe781fdbe52be945f83e5135a5cd0b8e2f71 /challenge-048/markus-holzer
parent19e5f9a3baf985cfb6244f652372772b38a4f39f (diff)
downloadperlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.tar.gz
perlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.tar.bz2
perlweeklychallenge-club-f40eb4e6815a4277c2c1285a123b2780c2dde8d3.zip
hardened
Diffstat (limited to 'challenge-048/markus-holzer')
-rw-r--r--challenge-048/markus-holzer/raku/ch-2.p6101
1 files changed, 54 insertions, 47 deletions
diff --git a/challenge-048/markus-holzer/raku/ch-2.p6 b/challenge-048/markus-holzer/raku/ch-2.p6
index a98153ca01..68604cd2ed 100644
--- a/challenge-048/markus-holzer/raku/ch-2.p6
+++ b/challenge-048/markus-holzer/raku/ch-2.p6
@@ -1,47 +1,54 @@
-my $formatter = sub { sprintf '%02d%02d%04d', .month, .day, .year given $^date };
-
-.say for (2000..2999)
- .grep({
- 0 < .substr(2,2).flip < 13 &&
- 0 < .substr(0,2).flip < 32 })
- .map({
- Date.new($_, |.flip.comb(2), :$formatter ) });
-
-# 36 solutions in total
-# 10022001
-# 01022010
-# 11022011
-# 02022020
-# 12022021
-# 03022030
-# 04022040
-# 05022050
-# 06022060
-# 07022070
-# 08022080
-# 09022090
-# 10122101
-# 01122110
-# 11122111
-# 02122120
-# 12122121
-# 03122130
-# 04122140
-# 05122150
-# 06122160
-# 07122170
-# 08122180
-# 09122190
-# 10222201
-# 01222210
-# 11222211
-# 02222220
-# 12222221
-# 03222230
-# 04222240
-# 05222250
-# 06222260
-# 07222270
-# 08222280
-# 09222290
-
+my $formatter = sub { sprintf '%02d%02d%04d', .month, .day, .year given $^date };
+
+#.say for (1300..1399)
+.say for (2000..2990)
+ # filter out most of the impossible years
+ .grep({
+ 0 < .substr(2,2).flip < 13 &&
+ 0 < .substr(0,2).flip < 32 })
+ # Try making a date, this fails sometimes, eg for the year 1311 -> 11311311
+ # which is not a valid date
+ .map({
+ try Date.new($_, |.flip.comb(2), :$formatter ) })
+ # So we need to filter these out
+ .grep({
+ .so });
+
+# 36 solutions in total
+# 10022001
+# 01022010
+# 11022011
+# 02022020
+# 12022021
+# 03022030
+# 04022040
+# 05022050
+# 06022060
+# 07022070
+# 08022080
+# 09022090
+# 10122101
+# 01122110
+# 11122111
+# 02122120
+# 12122121
+# 03122130
+# 04122140
+# 05122150
+# 06122160
+# 07122170
+# 08122180
+# 09122190
+# 10222201
+# 01222210
+# 11222211
+# 02222220
+# 12222221
+# 03222230
+# 04222240
+# 05222250
+# 06222260
+# 07222270
+# 08222280
+# 09222290
+