first few days

This commit is contained in:
Ben Charlton 2018-12-04 22:46:54 +00:00
parent 8764f51187
commit d3ae65f625
12 changed files with 343 additions and 0 deletions

35
2/1.pl Normal file
View file

@ -0,0 +1,35 @@
#!/usr/bin/perl
use strict;
chomp (my @data = <STDIN>);
my ($ck2, $ck3);
foreach my $w (@data) {
my ($r2, $r3) = checksum($w);
#print "$r2, $r3\n";
$ck2 += $r2;
$ck3 += $r3;
}
print $ck2 * $ck3 . "\n";
sub checksum {
my $word = shift;
my %seen;
foreach my $letter (split //, $word) {
$seen{$letter}++
}
my $twos = 0;
my $threes = 0;
foreach my $k (keys %seen) {
# print "$k $seen{$k}\n";
$twos=1 if ($seen{$k} == 2);
$threes=1 if ($seen{$k} == 3);
}
return ($twos, $threes);
}

40
2/2.pl Normal file
View file

@ -0,0 +1,40 @@
#!/usr/bin/perl
use strict;
chomp (my @data = <STDIN>);
foreach my $w (@data) {
print checksum($w, @data);
}
sub checksum ($@) {
my $word = shift;
my @list = @_;
my @word = split //, $word;
foreach my $w (@list) {
my @w = split //, $w;
# word lengths are all equal.
my $diff = 0;
my $common;
for (my $i = 0; $i <= $#word; $i++) {
if ($word[$i] ne $w[$i]) {
$diff++
} else {
$common .= $w[$i];
}
}
if ($diff == 1) {
print "$word, $w, $diff, $common\n";
exit;
}
}
}

7
2/sample.txt Normal file
View file

@ -0,0 +1,7 @@
abcdef
bababc
abbcde
abcccd
aabcdd
abcdee
ababab

7
2/sample2.txt Normal file
View file

@ -0,0 +1,7 @@
abcde
fghij
klmno
pqrst
fguij
axcye
wvxyz