From 91626ea5c5961030a54122d39b2aa2d3be8493b7 Mon Sep 17 00:00:00 2001 From: Adam Russell Date: Fri, 18 Jun 2021 23:54:15 -0400 Subject: task #1 solution --- challenge-117/adam-russell/perl/ch-1.pl | 108 +++++++++++--------------------- 1 file changed, 35 insertions(+), 73 deletions(-) diff --git a/challenge-117/adam-russell/perl/ch-1.pl b/challenge-117/adam-russell/perl/ch-1.pl index 56c6e7048a..bd250abf34 100644 --- a/challenge-117/adam-russell/perl/ch-1.pl +++ b/challenge-117/adam-russell/perl/ch-1.pl @@ -1,78 +1,40 @@ -use constant TRIANGLE_TOP => q|/\\| ; -use constant TRIANGLE_BOTTOM => q|/__\\|; - -sub print_triangle_3{ - my($n) = @_; - print " " x 5; - print TRIANGLE_TOP x 1; - print "\n"; - print " " x4; - print TRIANGLE_BOTTOM x 1; - print "\n"; - - print " " ." " . " ".TRIANGLE_TOP . " " . " " .TRIANGLE_TOP ; - print "\n"; - print " ". " ".TRIANGLE_BOTTOM . TRIANGLE_BOTTOM; - print "\n"; - - print " " .TRIANGLE_TOP . " ". " ".TRIANGLE_TOP . " ". " ". TRIANGLE_TOP; - print "\n"; - print TRIANGLE_BOTTOM . TRIANGLE_BOTTOM .TRIANGLE_BOTTOM; - print "\n"; - -} - -sub print_triangle_2{ - my($n) = @_; - print " " x 4; - print TRIANGLE_TOP x 1; - print "\n"; - print " " x3; - print TRIANGLE_BOTTOM x 1; - print "\n"; - - print " " x1; - print " " .TRIANGLE_TOP . " " . " " .TRIANGLE_TOP; - print "\n"; - print " ".TRIANGLE_BOTTOM . TRIANGLE_BOTTOM; - print "\n"; - +use strict; +use warnings; +## +# You are given text file with rows numbered 1-15 in +# random order but there is a catch one row in missing in the file. +# Write a script to find the missing row number. +## +sub find_missing{ + my(@numbers) = sort {$a <=> $b} @_; + for(my $i=0; $i< @numbers - 1; $i++){ + return $numbers[$i] + 1 if $numbers[$i] != $numbers[$i + 1] - 1; + } } -sub print_triangle{ - my($n) = @_; - my $top = TRIANGLE_TOP . " "; - for my $i (1 .. $n ){ - print " "; - print " " x ($n - $i); - print $top x $i ; - print "\n"; - print " " x ($n - $i ); - print TRIANGLE_BOTTOM x ($i ); - print "\n"; +MAIN:{ + my @line_numbers; + while(){ + chomp; + m/([0-9]+),.*/; + push @line_numbers, $1; } + my $missing = find_missing(@line_numbers); + print "$missing\n"; } -MAIN:{ - print_triangle(1); - print "\n"; - print "\n"; - print_triangle(2); - print "\n"; - print "\n"; - print_triangle(3); - print "\n"; - print "\n"; - print_triangle(4); - print "\n"; - print "\n"; - print_triangle(7); - print "\n"; - print "\n"; - print_triangle(10); - print "\n"; - print "\n"; - print_triangle(20); - print "\n"; - print "\n"; -} +__DATA__ +11, Line Eleven +1, Line one +9, Line Nine +13, Line Thirteen +2, Line two +6, Line Six +8, Line Eight +10, Line Ten +7, Line Seven +4, Line Four +14, Line Fourteen +3, Line three +15, Line Fifteen +5, Line Five -- cgit