2022 day 3 part 1 (bash)
This commit is contained in:
121
2022/day03/README.org
Normal file
121
2022/day03/README.org
Normal file
@@ -0,0 +1,121 @@
|
||||
** --- Day 3: Rucksack Reorganization ---
|
||||
One Elf has the important job of loading all of the
|
||||
[[https://en.wikipedia.org/wiki/Rucksack][rucksacks]] with supplies for
|
||||
the jungle journey. Unfortunately, that Elf didn't quite follow the
|
||||
packing instructions, and so a few items now need to be rearranged.
|
||||
|
||||
Each rucksack has two large /compartments/. All items of a given type
|
||||
are meant to go into exactly one of the two compartments. The Elf that
|
||||
did the packing failed to follow this rule for exactly one item type per
|
||||
rucksack.
|
||||
|
||||
The Elves have made a list of all of the items currently in each
|
||||
rucksack (your puzzle input), but they need your help finding the
|
||||
errors. Every item type is identified by a single lowercase or uppercase
|
||||
letter (that is, =a= and =A= refer to different types of items).
|
||||
|
||||
The list of items for each rucksack is given as characters all on a
|
||||
single line. A given rucksack always has the same number of items in
|
||||
each of its two compartments, so the first half of the characters
|
||||
represent items in the first compartment, while the second half of the
|
||||
characters represent items in the second compartment.
|
||||
|
||||
For example, suppose you have the following list of contents from six
|
||||
rucksacks:
|
||||
|
||||
#+begin_example
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||
#+end_example
|
||||
|
||||
- The first rucksack contains the items =vJrwpWtwJgWrhcsFMMfFFhFp=,
|
||||
which means its first compartment contains the items =vJrwpWtwJgWr=,
|
||||
while the second compartment contains the items =hcsFMMfFFhFp=. The
|
||||
only item type that appears in both compartments is lowercase =p=.
|
||||
- The second rucksack's compartments contain =jqHRNqRjqzjGDLGL= and
|
||||
=rsFMfFZSrLrFZsSL=. The only item type that appears in both
|
||||
compartments is uppercase =L=.
|
||||
- The third rucksack's compartments contain =PmmdzqPrV= and =vPwwTWBwg=;
|
||||
the only common item type is uppercase =P=.
|
||||
- The fourth rucksack's compartments only share item type =v=.
|
||||
- The fifth rucksack's compartments only share item type =t=.
|
||||
- The sixth rucksack's compartments only share item type =s=.
|
||||
|
||||
To help prioritize item rearrangement, every item type can be converted
|
||||
to a /priority/:
|
||||
|
||||
- Lowercase item types =a= through =z= have priorities 1 through 26.
|
||||
- Uppercase item types =A= through =Z= have priorities 27 through 52.
|
||||
|
||||
In the above example, the priority of the item type that appears in both
|
||||
compartments of each rucksack is 16 (=p=), 38 (=L=), 42 (=P=), 22 (=v=),
|
||||
20 (=t=), and 19 (=s=); the sum of these is =157=.
|
||||
|
||||
Find the item type that appears in both compartments of each rucksack.
|
||||
/What is the sum of the priorities of those item types?/
|
||||
|
||||
Your puzzle answer was =7878=.
|
||||
|
||||
The first half of this puzzle is complete! It provides one gold star: *
|
||||
|
||||
** --- Part Two ---
|
||||
As you finish identifying the misplaced items, the Elves come to you
|
||||
with another issue.
|
||||
|
||||
For safety, the Elves are divided into groups of three. Every Elf
|
||||
carries a badge that identifies their group. For efficiency, within each
|
||||
group of three Elves, the badge is the /only item type carried by all
|
||||
three Elves/. That is, if a group's badge is item type =B=, then all
|
||||
three Elves will have item type =B= somewhere in their rucksack, and at
|
||||
most two of the Elves will be carrying any other item type.
|
||||
|
||||
The problem is that someone forgot to put this year's updated
|
||||
authenticity sticker on the badges. All of the badges need to be pulled
|
||||
out of the rucksacks so the new authenticity stickers can be attached.
|
||||
|
||||
Additionally, nobody wrote down which item type corresponds to each
|
||||
group's badges. The only way to tell which item type is the right one is
|
||||
by finding the one item type that is /common between all three Elves/ in
|
||||
each group.
|
||||
|
||||
Every set of three lines in your list corresponds to a single group, but
|
||||
each group can have a different badge item type. So, in the above
|
||||
example, the first group's rucksacks are the first three lines:
|
||||
|
||||
#+begin_example
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
#+end_example
|
||||
|
||||
And the second group's rucksacks are the next three lines:
|
||||
|
||||
#+begin_example
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||
#+end_example
|
||||
|
||||
In the first group, the only item type that appears in all three
|
||||
rucksacks is lowercase =r=; this must be their badges. In the second
|
||||
group, their badge item type must be =Z=.
|
||||
|
||||
Priorities for these items must still be found to organize the sticker
|
||||
attachment efforts: here, they are 18 (=r=) for the first group and 52
|
||||
(=Z=) for the second group. The sum of these is =70=.
|
||||
|
||||
Find the item type that corresponds to the badges of each three-Elf
|
||||
group. /What is the sum of the priorities of those item types?/
|
||||
|
||||
Answer:
|
||||
|
||||
Although it hasn't changed, you can still [[file:3/input][get your
|
||||
puzzle input]].
|
||||
|
||||
You can also [Shareon
|
||||
[[https://twitter.com/intent/tweet?text=I%27ve+completed+Part+One+of+%22Rucksack+Reorganization%22+%2D+Day+3+%2D+Advent+of+Code+2022&url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F3&related=ericwastl&hashtags=AdventOfCode][Twitter]]
|
||||
[[javascript:void(0);][Mastodon]]] this puzzle.
|
Reference in New Issue
Block a user