2022 day 6 init + bash part 1
This commit is contained in:
92
2022/day06/README.org
Normal file
92
2022/day06/README.org
Normal file
@@ -0,0 +1,92 @@
|
||||
** --- Day 6: Tuning Trouble ---
|
||||
The preparations are finally complete; you and the Elves leave camp on
|
||||
foot and begin to make your way toward the /star/ fruit grove.
|
||||
|
||||
As you move through the dense undergrowth, one of the Elves gives you a
|
||||
handheld /device/. He says that it has many fancy features, but the most
|
||||
important one to set up right now is the /communication system/.
|
||||
|
||||
However, because he's heard you have [[/2016/day/6][significant]]
|
||||
[[/2016/day/25][experience]] [[/2019/day/7][dealing]]
|
||||
[[/2019/day/9][with]] [[/2019/day/16][signal-based]]
|
||||
[[/2021/day/25][systems]], he convinced the other Elves that it would be
|
||||
okay to give you their one malfunctioning device - surely you'll have no
|
||||
problem fixing it.
|
||||
|
||||
As if inspired by comedic timing, the device emits a few colorful
|
||||
sparks.
|
||||
|
||||
To be able to communicate with the Elves, the device needs to /lock on
|
||||
to their signal/. The signal is a series of seemingly-random characters
|
||||
that the device receives one at a time.
|
||||
|
||||
To fix the communication system, you need to add a subroutine to the
|
||||
device that detects a /start-of-packet marker/ in the datastream. In the
|
||||
protocol being used by the Elves, the start of a packet is indicated by
|
||||
a sequence of /four characters that are all different/.
|
||||
|
||||
The device will send your subroutine a datastream buffer (your puzzle
|
||||
input); your subroutine needs to identify the first position where the
|
||||
four most recently received characters were all different. Specifically,
|
||||
it needs to report the number of characters from the beginning of the
|
||||
buffer to the end of the first such four-character marker.
|
||||
|
||||
For example, suppose you receive the following datastream buffer:
|
||||
|
||||
#+begin_example
|
||||
mjqjpqmgbljsphdztnvjfqwrcgsmlb
|
||||
#+end_example
|
||||
|
||||
After the first three characters (=mjq=) have been received, there
|
||||
haven't been enough characters received yet to find the marker. The
|
||||
first time a marker could occur is after the fourth character is
|
||||
received, making the most recent four characters =mjqj=. Because =j= is
|
||||
repeated, this isn't a marker.
|
||||
|
||||
The first time a marker appears is after the /seventh/ character
|
||||
arrives. Once it does, the last four characters received are =jpqm=,
|
||||
which are all different. In this case, your subroutine should report the
|
||||
value =7=, because the first start-of-packet marker is complete after 7
|
||||
characters have been processed.
|
||||
|
||||
Here are a few more examples:
|
||||
|
||||
- =bvwbjplbgvbhsrlpgdmjqwftvncz=: first marker after character =5=
|
||||
- =nppdvjthqldpwncqszvftbrmjlhg=: first marker after character =6=
|
||||
- =nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg=: first marker after character =10=
|
||||
- =zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw=: first marker after character =11=
|
||||
|
||||
/How many characters need to be processed before the first
|
||||
start-of-packet marker is detected?/
|
||||
|
||||
Your puzzle answer was =1658=.
|
||||
|
||||
The first half of this puzzle is complete! It provides one gold star: *
|
||||
|
||||
** --- Part Two ---
|
||||
Your device's communication system is correctly detecting packets, but
|
||||
still isn't working. It looks like it also needs to look for /messages/.
|
||||
|
||||
A /start-of-message marker/ is just like a start-of-packet marker,
|
||||
except it consists of /14 distinct characters/ rather than 4.
|
||||
|
||||
Here are the first positions of start-of-message markers for all of the
|
||||
above examples:
|
||||
|
||||
- =mjqjpqmgbljsphdztnvjfqwrcgsmlb=: first marker after character =19=
|
||||
- =bvwbjplbgvbhsrlpgdmjqwftvncz=: first marker after character =23=
|
||||
- =nppdvjthqldpwncqszvftbrmjlhg=: first marker after character =23=
|
||||
- =nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg=: first marker after character =29=
|
||||
- =zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw=: first marker after character =26=
|
||||
|
||||
/How many characters need to be processed before the first
|
||||
start-of-message marker is detected?/
|
||||
|
||||
Answer:
|
||||
|
||||
Although it hasn't changed, you can still [[file:6/input][get your
|
||||
puzzle input]].
|
||||
|
||||
You can also [Shareon
|
||||
[[https://twitter.com/intent/tweet?text=I%27ve+completed+Part+One+of+%22Tuning+Trouble%22+%2D+Day+6+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F6&related=ericwastl&hashtags=AdventOfCode][Twitter]]
|
||||
[[javascript:void(0);][Mastodon]]] this puzzle.
|
Reference in New Issue
Block a user