Advent-of-Code/2018/01/README.md

49 lines
2.5 KiB
Markdown
Raw Normal View History

# 2018 Day 1: Chronal Calibration
Copyright (c) Eric Wastl
#### [Direct Link](https://adventofcode.com/2018/day/1)
## Part 1
After feeling like you've been falling for a few minutes, you look at the device's tiny screen. "Error: Device must be calibrated before first use. Frequency drift detected. Cannot maintain destination lock." Below the message, the device shows a sequence of changes in frequency (your puzzle input). A value like `+6` means the current frequency increases by `6`; a value like `-3` means the current frequency decreases by `3`.
For example, if the device displays frequency changes of `+1, -2, +3, +1`, then starting from a frequency of zero, the following changes would occur:
- Current frequency ` 0`, change of `+1`; resulting frequency ` 1`.
- Current frequency ` 1`, change of `-2`; resulting frequency `-1`.
- Current frequency `-1`, change of `+3`; resulting frequency ` 2`.
- Current frequency ` 2`, change of `+1`; resulting frequency ` 3`.
In this example, the resulting frequency is `3`.
Here are other example situations:
- `+1, +1, +1` results in ` 3`
- `+1, +1, -2` results in ` 0`
- `-1, -2, -3` results in `-6`
Starting with a frequency of zero, **what is the resulting frequency** after all of the changes in frequency have been applied?
## Part 2
You notice that the device repeats the same frequency change list over and over. To calibrate the device, you need to find the first frequency it reaches **twice**.
For example, using the same list of changes above, the device would loop as follows:
- Current frequency ` 0`, change of `+1`; resulting frequency ` 1`.
- Current frequency ` 1`, change of `-2`; resulting frequency `-1`.
- Current frequency `-1`, change of `+3`; resulting frequency ` 2`.
- Current frequency ` 2`, change of `+1`; resulting frequency ` 3`.
- (At this point, the device continues from the start of the list.)
- Current frequency ` 3`, change of `+1`; resulting frequency ` 4`.
- Current frequency ` 4`, change of `-2`; resulting frequency ` 2`, which has already been seen.
In this example, the first frequency reached twice is `2`. Note that your device might need to repeat its list of frequency changes many times before a duplicate frequency is found, and that duplicates might be found while in the middle of processing the list.
Here are other examples:
- `+1, -1` first reaches `0` twice.
- `+3, +3, +4, -2, -4` first reaches `10` twice.
- `-6, +3, +8, +5, -6` first reaches `5` twice.
- `+7, +7, -2, -7, -4` first reaches `14` twice.
**What is the first frequency your device reaches twice?**