103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|                                                         Advent of Code
 | ||
| 
 | ||
|      • [About]
 | ||
|      • [Events]
 | ||
|      • [Shop]
 | ||
|      • [Settings]
 | ||
|      • [Log Out]
 | ||
| 
 | ||
|    br0xen (AoC++) 35*
 | ||
| 
 | ||
|                                                               /*2022*/
 | ||
| 
 | ||
|      • [Calendar]
 | ||
|      • [AoC++]
 | ||
|      • [Sponsors]
 | ||
|      • [Leaderboard]
 | ||
|      • [Stats]
 | ||
| 
 | ||
|    Our sponsors help make Advent of Code possible:
 | ||
|    Teradyne - Do you like coding algorithms where milliseconds matter? What about nanoseconds?
 | ||
| 
 | ||
| --- Day 21: Monkey Math ---
 | ||
| 
 | ||
|    The monkeys are back! You're worried they're going to try to steal your stuff again, but it seems like they're just
 | ||
|    holding their ground and making various monkey noises at you.
 | ||
| 
 | ||
|    Eventually, one of the elephants realizes you don't speak monkey and comes over to interpret. As it turns out, they
 | ||
|    overheard you talking about trying to find the grove; they can show you a shortcut if you answer their riddle.
 | ||
| 
 | ||
|    Each monkey is given a job: either to yell a specific number or to yell the result of a math operation. All of the
 | ||
|    number-yelling monkeys know their number from the start; however, the math operation monkeys need to wait for two other
 | ||
|    monkeys to yell a number, and those two other monkeys might also be waiting on other monkeys.
 | ||
| 
 | ||
|    Your job is to work out the number the monkey named root will yell before the monkeys figure it out themselves.
 | ||
| 
 | ||
|    For example:
 | ||
| 
 | ||
|  root: pppw + sjmn
 | ||
|  dbpl: 5
 | ||
|  cczh: sllz + lgvd
 | ||
|  zczc: 2
 | ||
|  ptdq: humn - dvpt
 | ||
|  dvpt: 3
 | ||
|  lfqf: 4
 | ||
|  humn: 5
 | ||
|  ljgn: 2
 | ||
|  sjmn: drzm * dbpl
 | ||
|  sllz: 4
 | ||
|  pppw: cczh / lfqf
 | ||
|  lgvd: ljgn * ptdq
 | ||
|  drzm: hmdt - zczc
 | ||
|  hmdt: 32
 | ||
| 
 | ||
|    Each line contains the name of a monkey, a colon, and then the job of that monkey:
 | ||
| 
 | ||
|      • A lone number means the monkey's job is simply to yell that number.
 | ||
|      • A job like aaaa + bbbb means the monkey waits for monkeys aaaa and bbbb to yell each of their numbers; the monkey
 | ||
|        then yells the sum of those two numbers.
 | ||
|      • aaaa - bbbb means the monkey yells aaaa's number minus bbbb's number.
 | ||
|      • Job aaaa * bbbb will yell aaaa's number multiplied by bbbb's number.
 | ||
|      • Job aaaa / bbbb will yell aaaa's number divided by bbbb's number.
 | ||
| 
 | ||
|    So, in the above example, monkey drzm has to wait for monkeys hmdt and zczc to yell their numbers. Fortunately, both
 | ||
|    hmdt and zczc have jobs that involve simply yelling a single number, so they do this immediately: 32 and 2. Monkey drzm
 | ||
|    can then yell its number by finding 32 minus 2: 30.
 | ||
| 
 | ||
|    Then, monkey sjmn has one of its numbers (30, from monkey drzm), and already has its other number, 5, from dbpl. This
 | ||
|    allows it to yell its own number by finding 30 multiplied by 5: 150.
 | ||
| 
 | ||
|    This process continues until root yells a number: 152.
 | ||
| 
 | ||
|    However, your actual situation involves considerably more monkeys. What number will the monkey named root yell?
 | ||
| 
 | ||
|    To begin, get your puzzle input.
 | ||
| 
 | ||
|    Answer: _____________________ [ [Submit] ]
 | ||
| 
 | ||
|    You can also [Shareon Twitter Mastodon] this puzzle.
 | ||
| 
 | ||
| References
 | ||
| 
 | ||
|    Visible links
 | ||
|    . https://adventofcode.com/
 | ||
|    . https://adventofcode.com/2022/about
 | ||
|    . https://adventofcode.com/2022/events
 | ||
|    . https://teespring.com/stores/advent-of-code
 | ||
|    . https://adventofcode.com/2022/settings
 | ||
|    . https://adventofcode.com/2022/auth/logout
 | ||
|    . Advent of Code Supporter
 | ||
| 	https://adventofcode.com/2022/support
 | ||
|    . https://adventofcode.com/2022
 | ||
|    . https://adventofcode.com/2022
 | ||
|    . https://adventofcode.com/2022/support
 | ||
|    . https://adventofcode.com/2022/sponsors
 | ||
|    . https://adventofcode.com/2022/leaderboard
 | ||
|    . https://adventofcode.com/2022/stats
 | ||
|    . https://adventofcode.com/2022/sponsors
 | ||
|    . https://jobs.teradyne.com/?utm_source=adventofcode&utm_medium=ad&utm_campaign=2022
 | ||
|    . https://adventofcode.com/2022/day/11
 | ||
|    . https://adventofcode.com/2022/day/21/input
 | ||
|    . https://twitter.com/intent/tweet?text=%22Monkey+Math%22+%2D+Day+21+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F21&related=ericwastl&hashtags=AdventOfCode
 | ||
|    . javascript:void(0);
 |