VP 58: Frequencies (30 extra)
What You Need
Any computer with Python 3. You can also use
an online Python environment, such as
https://colab.research.google.com
Problem Statement
A radio device must be calibrated--its frequency is incorrect.
Your input data is a list of frequency changes. 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
VP 58.1: Frequency Shift (15 pts)
Use this data:
https://samsclass.info/COMSC122/proj/VP58
Starting with a frequency of zero, what is the resulting frequency after all of the changes in frequency have been applied?
That number is the flag.
|
Part 2: Duplicated Frequency
Now you need to find the first frequency it reaches twice. After processing the entire
list of changes, just repeat the whole list again, as many times as required.
For example, if the device displays frequency changes of +1, -2, +3, +1,
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.
VP 58.2: Duplicated Frequency (15 pts)
Use the same data:
https://samsclass.info/COMSC122/proj/VP58
What is the first frequency your device reaches twice?
That number is the flag.
Hint: you will need to perform more than 100,000 frequency adjustments.
|
Source
Adapted from the Advent of Code.
Posted 11-3-25