104 lines
3.8 KiB
Plaintext
104 lines
3.8 KiB
Plaintext
Advent of Code
|
||
|
||
br0xen 40*
|
||
|
||
• [About]
|
||
• [Stats]
|
||
• [Leaderboard]
|
||
• [Settings]
|
||
• [Log out]
|
||
|
||
--- Day 7: Some Assembly Required ---
|
||
|
||
This year, Santa brought little Bobby Tables a set of wires and bitwise logic gates!
|
||
Unfortunately, little Bobby is a little under the recommended age range, and he needs help
|
||
assembling the circuit.
|
||
|
||
Each wire has an identifier (some lowercase letters) and can carry a 16-bit signal (a number
|
||
from 0 to 65535). A signal is provided to each wire by a gate, another wire, or some specific
|
||
value. Each wire can only get a signal from one source, but can provide its signal to multiple
|
||
destinations. A gate provides no signal until all of its inputs have a signal.
|
||
|
||
The included instructions booklet describes how to connect the parts together: x AND y -> z
|
||
means to connect wires x and y to an AND gate, and then connect its output to wire z.
|
||
|
||
For example:
|
||
|
||
• 123 -> x means that the signal 123 is provided to wire x.
|
||
• x AND y -> z means that the bitwise AND of wire x and wire y is provided to wire z.
|
||
• p LSHIFT 2 -> q means that the value from wire p is left-shifted by 2 and then provided to
|
||
wire q.
|
||
• NOT e -> f means that the bitwise complement of the value from wire e is provided to wire
|
||
f.
|
||
|
||
Other possible gates include OR (bitwise OR) and RSHIFT (right-shift). If, for some reason,
|
||
you'd like to emulate the circuit instead, almost all programming languages (for example, C,
|
||
JavaScript, or Python) provide operators for these gates.
|
||
|
||
For example, here is a simple circuit:
|
||
|
||
123 -> x
|
||
456 -> y
|
||
x AND y -> d
|
||
x OR y -> e
|
||
x LSHIFT 2 -> f
|
||
y RSHIFT 2 -> g
|
||
NOT x -> h
|
||
NOT y -> i
|
||
|
||
After it is run, these are the signals on the wires:
|
||
|
||
d: 72
|
||
e: 507
|
||
f: 492
|
||
g: 114
|
||
h: 65412
|
||
i: 65079
|
||
x: 123
|
||
y: 456
|
||
|
||
In little Bobby's kit's instructions booklet (provided as your puzzle input), what signal is
|
||
ultimately provided to wire a?
|
||
|
||
Your puzzle answer was 16076.
|
||
|
||
--- Part Two ---
|
||
|
||
Now, take the signal you got on wire a, override wire b to that signal, and reset the other
|
||
wires (including wire a). What new signal is ultimately provided to wire a?
|
||
|
||
Your puzzle answer was 2797.
|
||
|
||
Both parts of this puzzle are complete! They provide two gold stars: **
|
||
|
||
At this point, you should return to your advent calendar and try another puzzle.
|
||
|
||
If you still want to see it, you can get your puzzle input.
|
||
|
||
You can also [Shareon Twitter Google+ Reddit] this puzzle.
|
||
|
||
References
|
||
|
||
Visible links
|
||
. http://adventofcode.com/
|
||
. http://adventofcode.com/about
|
||
. http://adventofcode.com/stats
|
||
. http://adventofcode.com/leaderboard
|
||
. http://adventofcode.com/settings
|
||
. http://adventofcode.com/auth/logout
|
||
. https://en.wikipedia.org/wiki/Bitwise_operation
|
||
. https://en.wikipedia.org/wiki/16-bit
|
||
. https://en.wikipedia.org/wiki/Bitwise_operation#AND
|
||
. https://en.wikipedia.org/wiki/Logical_shift
|
||
. https://en.wikipedia.org/wiki/Bitwise_operation#NOT
|
||
. https://en.wikipedia.org/wiki/Bitwise_operation#OR
|
||
. https://en.wikipedia.org/wiki/Logical_shift
|
||
. https://en.wikipedia.org/wiki/Bitwise_operations_in_C
|
||
. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
|
||
. https://wiki.python.org/moin/BitwiseOperators
|
||
. http://adventofcode.com/
|
||
. http://adventofcode.com/day/7/input
|
||
. https://twitter.com/intent/tweet?text=I%27ve+completed+%22Some+Assembly+Required%22+%2D+Day+7+%2D+Advent+of+Code&url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7&related=ericwastl&hashtags=AdventOfCode
|
||
. https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7
|
||
. http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7&title=I%27ve+completed+%22Some+Assembly+Required%22+%2D+Day+7+%2D+Advent+of+Code
|