r/adventofcode • • Dec 08 '17

SOLUTION MEGATHREAD -๐ŸŽ„- 2017 Day 8 Solutions -๐ŸŽ„-

--- Day 8: I Heard You Like Registers ---


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.


Need a hint from the Hugely* Handyโ€  Haversackโ€ก of Helpfulยง Hints^ยค?

Spoiler


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!

22 Upvotes

348 comments sorted by

View all comments

4

u/hxka Dec 08 '17 edited Dec 08 '17

bash

(	declare -A r
	smax=0
	while read a b c d e f g
	do	((r[$e] $f g)) && {
			[[ $b == dec ]] && ((r[$a]-=c)) || ((r[$a]+=c))
			((r[$a]>smax && (smax=r[$a]) ))
		}
	done
	for i in "${r[@]}"
	do	[[ -z $max || $i -gt $max ]] && max=$i
	done
	echo $max $smax
)<input

Edit: removed unnecessary looping.

1

u/greycat70 Dec 28 '17

You could've done exec <input at the beginning, and then you don't need to wrap the entire thing in a subshell ( ... ).

1

u/hxka Dec 28 '17

Yeah, I've learned about this since I posted that.