aboutsummaryrefslogtreecommitdiff
path: root/challenge-201/dave-jacoby/perl/ch-1.pl
blob: 6e23d100496358241a5372401b05c1f6e9b01f5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env perl

use strict;
use warnings;
use experimental qw{ say postderef signatures state };

my @examples = (

    [ 0, 1, 3 ],
    [ 0, 1 ],
    [ 1, 3, 5, 7, 9 ]

);

for my $e (@examples) {
    my $list = join ',', $e->@*;
    my @out  = missing_numbers( $e->@* );
    my $out  = join ',', @out;
    say <<"END";
    Input:  \@array = ($list)
    Output: $out
END
}

sub missing_numbers ( @array ) {
    my $n = scalar @array;
    my %h = map { $_ => 1 } @array;
    my @output;
    for my $v ( 0 .. $n ) {
        push @output, $v unless $h{$v};
    }
    return @output;
}