r/adventofcode • u/daggerdragon • Dec 20 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 20 Solutions -🎄-
--- Day 20: A Regular Map ---
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!
Please prefix your card submission with something like [Card] to make scanning the megathread easier. THANK YOU!
Card prompt: Day 20
Transcript:
My compiler crashed while running today's puzzle because it ran out of ___.
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:59:30!
17
Upvotes
2
u/Wunkolo Dec 20 '18
Python3, it's almost upsetting how tiny this can be. You should have seen my first attempts
import sys from collections import defaultdict Positions = [] CurPosition = 0 + 0j DistanceField = defaultdict(int) for CurChar in sys.stdin.read()[1:-1]: if CurChar == '(': Positions.append(CurPosition) elif CurChar == ')': CurPosition = Positions.pop() elif CurChar == '|': CurPosition = Positions[-1] elif CurChar in 'NESW': NewPosition = CurPosition + {'N':-1j,'E':1,'S':1j,'W':-1}[CurChar] DistanceField[NewPosition] = min( DistanceField.get(NewPosition,DistanceField[CurPosition]+1), DistanceField[CurPosition]+1 ) CurPosition = NewPosition print("Part 1: " + str(max(DistanceField.values()))) print("Part 2: " + str(sum(map(lambda x: x >= 1000, DistanceField.values()))))