Add problems for days 1-7
This commit is contained in:
101
2020/day05/problem
Normal file
101
2020/day05/problem
Normal file
@@ -0,0 +1,101 @@
|
||||
# Advent of Code
|
||||
|
||||
--- Day 5: Binary Boarding ---
|
||||
|
||||
You board your plane only to discover a new problem: you dropped your boarding pass! You
|
||||
aren't sure which seat is yours, and all of the flight attendants are busy with the flood
|
||||
of people that suddenly made it through passport control.
|
||||
|
||||
You write a quick program to use your phone's camera to scan all of the nearby boarding
|
||||
passes (your puzzle input); perhaps you can find your seat through process of elimination.
|
||||
|
||||
Instead of zones or groups, this airline uses binary space partitioning to seat people. A
|
||||
seat might be specified like FBFBBFFRLR, where F means "front", B means "back", L means
|
||||
"left", and R means "right".
|
||||
|
||||
The first 7 characters will either be F or B; these specify exactly one of the 128 rows on
|
||||
the plane (numbered 0 through 127). Each letter tells you which half of a region the given
|
||||
seat is in. Start with the whole list of rows; the first letter indicates whether the seat
|
||||
is in the front (0 through 63) or the back (64 through 127). The next letter indicates
|
||||
which half of that region the seat is in, and so on until you're left with exactly one row.
|
||||
|
||||
For example, consider just the first seven characters of FBFBBFFRLR:
|
||||
|
||||
• Start by considering the whole range, rows 0 through 127.
|
||||
• F means to take the lower half, keeping rows 0 through 63.
|
||||
• B means to take the upper half, keeping rows 32 through 63.
|
||||
• F means to take the lower half, keeping rows 32 through 47.
|
||||
• B means to take the upper half, keeping rows 40 through 47.
|
||||
• B keeps rows 44 through 47.
|
||||
• F keeps rows 44 through 45.
|
||||
• The final F keeps the lower of the two, row 44.
|
||||
|
||||
The last three characters will be either L or R; these specify exactly one of the 8 columns
|
||||
of seats on the plane (numbered 0 through 7). The same process as above proceeds again,
|
||||
this time with only three steps. L means to keep the lower half, while R means to keep the
|
||||
upper half.
|
||||
|
||||
For example, consider just the last 3 characters of FBFBBFFRLR:
|
||||
|
||||
• Start by considering the whole range, columns 0 through 7.
|
||||
• R means to take the upper half, keeping columns 4 through 7.
|
||||
• L means to take the lower half, keeping columns 4 through 5.
|
||||
• The final R keeps the upper of the two, column 5.
|
||||
|
||||
So, decoding FBFBBFFRLR reveals that it is the seat at row 44, column 5.
|
||||
|
||||
Every seat also has a unique seat ID: multiply the row by 8, then add the column. In this
|
||||
example, the seat has ID 44 * 8 + 5 = 357.
|
||||
|
||||
Here are some other boarding passes:
|
||||
|
||||
• BFFFBBFRRR: row 70, column 7, seat ID 567.
|
||||
• FFFBBBFRRR: row 14, column 7, seat ID 119.
|
||||
• BBFFBBFRLL: row 102, column 4, seat ID 820.
|
||||
|
||||
As a sanity check, look through your list of boarding passes. What is the highest seat ID
|
||||
on a boarding pass?
|
||||
|
||||
Your puzzle answer was 991.
|
||||
|
||||
--- Part Two ---
|
||||
|
||||
Ding! The "fasten seat belt" signs have turned on. Time to find your seat.
|
||||
|
||||
It's a completely full flight, so your seat should be the only missing boarding pass in
|
||||
your list. However, there's a catch: some of the seats at the very front and back of the
|
||||
plane don't exist on this aircraft, so they'll be missing from your list as well.
|
||||
|
||||
Your seat wasn't at the very front or back, though; the seats with IDs +1 and -1 from yours
|
||||
will be in your list.
|
||||
|
||||
What is the ID of your seat?
|
||||
|
||||
Your puzzle answer was 534.
|
||||
|
||||
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.
|
||||
|
||||
References
|
||||
|
||||
Visible links
|
||||
. https://adventofcode.com/
|
||||
. https://adventofcode.com/2020/about
|
||||
. https://adventofcode.com/2020/events
|
||||
. https://adventofcode.com/2020/settings
|
||||
. https://adventofcode.com/2020/auth/logout
|
||||
. Advent of Code Supporter
|
||||
https://adventofcode.com/2020/support
|
||||
. https://adventofcode.com/2020
|
||||
. https://adventofcode.com/2020
|
||||
. https://adventofcode.com/2020/support
|
||||
. https://adventofcode.com/2020/sponsors
|
||||
. https://adventofcode.com/2020/leaderboard
|
||||
. https://adventofcode.com/2020/stats
|
||||
. https://adventofcode.com/2020/sponsors
|
||||
. https://www.youtube.com/watch?v=oAHbLRjF0vo
|
||||
. https://adventofcode.com/2020
|
||||
. https://adventofcode.com/2020/day/5/input
|
Reference in New Issue
Block a user