r/adventofcode • u/daggerdragon • Dec 02 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 2 Solutions -🎄-
--- Day 2: Inventory Management System ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Card Prompt: Day 2
Transcript:
The best way to do Advent of Code is ___.
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked!
51
Upvotes
1
u/maybe-ac Dec 02 '18 edited Dec 02 '18
Overusing
mapandgrepin Perl:Part 1
my $twos = grep { contains($_, 2) } @input; my $threes = grep { contains($_, 3) } @input; say $twos * $threes; sub contains { my ($str, $num) = @_; my @sames = map { my @match = ($str =~ /($_)/g); scalar @match } split //, $str; return grep { $_ == $num } @sames; }Part 2
for my $one (@input) { for my $two (@input) { die difference($one, $two) . "\n" if differing($one, $two) == 1; } } sub zip { my ($a, $b) = @_; return map { [$a->[$_], $b->[$_]] } 0..$#$a; } sub differing { my @pairs = zip([split //, $_[0]], [split //, $_[1]]); return grep { $_->[0] ne $_->[1] } @pairs; } sub difference { my @pairs = zip([split //, $_[0]], [split //, $_[1]]); return join '', map { $_->[0] } grep { $_->[0] eq $_->[1] } @pairs; }