aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-192/tim-potapov/perl/ch-1.pl55
-rwxr-xr-xchallenge-192/tim-potapov/perl/ch-2.pl63
2 files changed, 118 insertions, 0 deletions
diff --git a/challenge-192/tim-potapov/perl/ch-1.pl b/challenge-192/tim-potapov/perl/ch-1.pl
new file mode 100755
index 0000000000..a626d6d3bd
--- /dev/null
+++ b/challenge-192/tim-potapov/perl/ch-1.pl
@@ -0,0 +1,55 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More;
+
+=pod
+
+Task 1: Binary Flip
+You are given a positive integer, $n.
+
+Write a script to find the binary flip.
+
+Example 1
+Input: $n = 5
+Output: 2
+
+First find the binary equivalent of the given integer, 101.
+Then flip the binary digits 0 -> 1 and 1 -> 0 and we get 010.
+So Binary 010 => Decimal 2.
+Example 2
+Input: $n = 4
+Output: 3
+
+Decimal 4 = Binary 100
+Flip 0 -> 1 and 1 -> 0, we get 011.
+Binary 011 = Decimal 3
+Example 3
+Input: $n = 6
+Output: 1
+
+Decimal 6 = Binary 110
+Flip 0 -> 1 and 1 -> 0, we get 001.
+Binary 001 = Decimal 1
+
+=cut
+
+sub function {
+ my ( $input ) = @_;
+
+}
+
+my @cases = (
+ {
+ Name => 'Example1',
+ Input => 1,
+ Output => 1,
+ },
+);
+
+for ( @cases ) {
+ is function( $_->{Input} ), $_->{Output}, "$_->{Name} - $_->{Input}";
+}
+
+done_testing();
diff --git a/challenge-192/tim-potapov/perl/ch-2.pl b/challenge-192/tim-potapov/perl/ch-2.pl
new file mode 100755
index 0000000000..c1ed1b9a81
--- /dev/null
+++ b/challenge-192/tim-potapov/perl/ch-2.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Test::More;
+
+=pod
+
+Task 2: Equal Distribution
+You are given a list of integers greater than or equal to zero, @list.
+
+Write a script to distribute the number so that each members are same. If you succeed then print the total moves otherwise print -1.
+
+Example 1:
+Input: @list = (1, 0, 5)
+Output: 4
+
+Move #1: 1, 1, 4
+(2nd cell gets 1 from the 3rd cell)
+
+Move #2: 1, 2, 3
+(2nd cell gets 1 from the 3rd cell)
+
+Move #3: 2, 1, 3
+(1st cell get 1 from the 2nd cell)
+
+Move #4: 2, 2, 2
+(2nd cell gets 1 from the 3rd cell)
+Example 2:
+Input: @list = (0, 2, 0)
+Output: -1
+
+It is not possible to make each same.
+Example 3:
+Input: @list = (0, 3, 0)
+Output: 2
+
+Move #1: 1, 2, 0
+(1st cell gets 1 from the 2nd cell)
+
+Move #2: 1, 1, 1
+(3rd cell gets 1 from the 2nd cell)
+
+=cut
+
+sub function {
+ my ( $input ) = @_;
+
+}
+
+my @cases = (
+ {
+ Name => 'Example1',
+ Input => 1,
+ Output => 1,
+ },
+);
+
+for ( @cases ) {
+ is function( $_->{Input} ), $_->{Output}, "$_->{Name} - $_->{Input}";
+}
+
+done_testing();