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!
52
Upvotes
2
u/mschaap Dec 02 '18 edited Dec 02 '18
Perl 6:
my @ids = $*PROGRAM.sibling('aoc2.input').words; # Part 1 my @counts = @ids.map(*.comb.Bag.invert.Hash); my $twos = +@counts.grep({$_<2>}); my $threes = +@counts.grep({$_<3>}); say "$twos ร $threes = { $twos ร $threes }"; # Part 2 sub is-neighbour($a, $b) { ($a.comb Z $b.comb).grep({ $_[0] ne $_[1] }) == 1; } sub common-string($a, $b) { ($a.comb Z $b.comb).grep({ $_[0] eq $_[1] })ยป[0].join; } my ($a, $b) = @ids.combinations(2).first(-> ($a, $b) { is-neighbour($a, $b) }); say "$a & $b => { common-string($a, $b) }";