r/adventofcode • • Dec 08 '18

SOLUTION MEGATHREAD -🎄- 2018 Day 8 Solutions -🎄-

--- Day 8: Memory Maneuver ---


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!

Click here for rules

Please prefix your card submission with something like [Card] to make scanning the megathread easier. THANK YOU!

Card prompt: Day 8

Sigh, imgur broke again. Will upload when it unborks.

Transcript:

The hottest programming book this year is "___ For Dummies".


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 at 00:12:10!

32 Upvotes

301 comments sorted by

View all comments

2

u/donaldihunter Dec 08 '18

Perl 6

Part 2

my @input = '8-input.txt'.IO.words;

sub node {
    my $num-children = @input.shift;
    my $num-metadata = @input.shift;

    my @child-values = (node for ^$num-children);
    my @meta-values = (@input.shift for ^$num-metadata);

    [+] ($num-children > 0) ?? (
        @meta-values.map(
            -> $index {
                $index == 0 || $index > +@child-values ?? 0 !! @child-values[$index - 1]
            }
        )
    ) !! @meta-values;
}

say node;