aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-084/kai-burgdorf/README.md1
-rwxr-xr-xchallenge-084/kai-burgdorf/perl/ch-1.pl18
-rwxr-xr-xchallenge-084/kai-burgdorf/perl/ch-2.pl52
3 files changed, 71 insertions, 0 deletions
diff --git a/challenge-084/kai-burgdorf/README.md b/challenge-084/kai-burgdorf/README.md
new file mode 100644
index 0000000000..f0e13acd45
--- /dev/null
+++ b/challenge-084/kai-burgdorf/README.md
@@ -0,0 +1 @@
+Solution by Kai Burgdorf
diff --git a/challenge-084/kai-burgdorf/perl/ch-1.pl b/challenge-084/kai-burgdorf/perl/ch-1.pl
new file mode 100755
index 0000000000..0e890b6e44
--- /dev/null
+++ b/challenge-084/kai-burgdorf/perl/ch-1.pl
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+my $N = $ARGV[0] // 1234;
+
+if ($N >= 2147483647) {
+ print "0";
+}
+else {
+ my @numbers = split("", $N);
+ while(scalar @numbers != 0) {
+ print pop @numbers;
+ }
+}
diff --git a/challenge-084/kai-burgdorf/perl/ch-2.pl b/challenge-084/kai-burgdorf/perl/ch-2.pl
new file mode 100755
index 0000000000..85de550fe3
--- /dev/null
+++ b/challenge-084/kai-burgdorf/perl/ch-2.pl
@@ -0,0 +1,52 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+#Example 1 - Output: 1
+my @input = ( [ 0, 1, 0, 1 ], [ 0, 0, 1, 0 ], [ 1, 1, 0, 1 ], [ 1, 0, 0, 1 ] );
+
+#Example 2 - Output: 4
+#my @input = ( [ 1, 1, 0, 1 ], [ 1, 1, 0, 0 ], [ 0, 1, 1, 1 ], [ 1, 0, 1, 1 ] );
+
+#Example 3 - Output: 0
+#my @input = ( [ 0, 1, 0, 1 ], [ 1, 0, 1, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 0, 1 ] );
+
+my $size = scalar @{ $input[0] };
+my $squares = 0;
+
+my $r = 0;
+for my $row (@input) {
+ my $c = 0;
+ for my $elem ( @{$row} ) {
+ if ( $elem == 1 ) {
+ $squares += get_squares( $r, $c );
+ }
+ $c++;
+ }
+ $r++;
+}
+
+print "Output: $squares\n";
+
+sub get_squares {
+ my ( $r, $c ) = @_;
+
+ my $square_count = 0;
+ my @row = @{ $input[$r] };
+
+ for my $top_right ( $c + 1 .. $#row ) {
+
+ my $bottom_row = $r + $top_right - $c;
+
+ if ( $bottom_row < $size
+ && $input[$r][$top_right] == 1
+ && $input[$bottom_row][$c] == 1
+ && $input[$bottom_row][$top_right] == 1 )
+ {
+ $square_count++;
+ }
+ }
+
+ return $square_count;
+}