switch README to org-mode / add ccls compile_commands.json generation
This commit is contained in:
131
2020/day24/README.org
Normal file
131
2020/day24/README.org
Normal file
@@ -0,0 +1,131 @@
|
||||
** --- Day 24: Lobby Layout ---
|
||||
Your raft makes it to the tropical island; it turns out that the small
|
||||
crab was an excellent navigator. You make your way to the resort.
|
||||
|
||||
As you enter the lobby, you discover a small problem: the floor is being
|
||||
renovated. You can't even reach the check-in desk until they've finished
|
||||
installing the /new tile floor/.
|
||||
|
||||
The tiles are all /hexagonal/; they need to be arranged in a
|
||||
[[https://en.wikipedia.org/wiki/Hexagonal_tiling][hex grid]] with a very
|
||||
specific color pattern. Not in the mood to wait, you offer to help
|
||||
figure out the pattern.
|
||||
|
||||
The tiles are all /white/ on one side and /black/ on the other. They
|
||||
start with the white side facing up. The lobby is large enough to fit
|
||||
whatever pattern might need to appear there.
|
||||
|
||||
A member of the renovation crew gives you a /list of the tiles that need
|
||||
to be flipped over/ (your puzzle input). Each line in the list
|
||||
identifies a single tile that needs to be flipped by giving a series of
|
||||
steps starting from a /reference tile/ in the very center of the room.
|
||||
(Every line starts from the same reference tile.)
|
||||
|
||||
Because the tiles are hexagonal, every tile has /six neighbors/: east,
|
||||
southeast, southwest, west, northwest, and northeast. These directions
|
||||
are given in your list, respectively, as =e=, =se=, =sw=, =w=, =nw=, and
|
||||
=ne=. A tile is identified by a series of these directions with /no
|
||||
delimiters/; for example, =esenee= identifies the tile you land on if
|
||||
you start at the reference tile and then move one tile east, one tile
|
||||
southeast, one tile northeast, and one tile east.
|
||||
|
||||
Each time a tile is identified, it flips from white to black or from
|
||||
black to white. Tiles might be flipped more than once. For example, a
|
||||
line like =esew= flips a tile immediately adjacent to the reference
|
||||
tile, and a line like =nwwswee= flips the reference tile itself.
|
||||
|
||||
Here is a larger example:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
sesenwnenenewseeswwswswwnenewsewsw
|
||||
neeenesenwnwwswnenewnwwsewnenwseswesw
|
||||
seswneswswsenwwnwse
|
||||
nwnwneseeswswnenewneswwnewseswneseene
|
||||
swweswneswnenwsewnwneneseenw
|
||||
eesenwseswswnenwswnwnwsewwnwsene
|
||||
sewnenenenesenwsewnenwwwse
|
||||
wenwwweseeeweswwwnwwe
|
||||
wsweesenenewnwwnwsenewsenwwsesesenwne
|
||||
neeswseenwwswnwswswnw
|
||||
nenwswwsewswnenenewsenwsenwnesesenew
|
||||
enewnwewneswsewnwswenweswnenwsenwsw
|
||||
sweneswneswneneenwnewenewwneswswnese
|
||||
swwesenesewenwneswnwwneseswwne
|
||||
enesenwswwswneneswsenwnewswseenwsese
|
||||
wnwnesenesenenwwnenwsewesewsesesew
|
||||
nenewswnwewswnenesenwnesewesw
|
||||
eneswnwswnwsenenwnwnwwseeswneewsenese
|
||||
neswnwewnwnwseenwseesewsenwsweewe
|
||||
wseweeenwnesenwwwswnew
|
||||
#+END_EXAMPLE
|
||||
|
||||
In the above example, 10 tiles are flipped once (to black), and 5 more
|
||||
are flipped twice (to black, then back to white). After all of these
|
||||
instructions have been followed, a total of /=10=/ tiles are /black/.
|
||||
|
||||
Go through the renovation crew's list and determine which tiles they
|
||||
need to flip. After all of the instructions have been followed, /how
|
||||
many tiles are left with the black side up?/
|
||||
|
||||
Your puzzle answer was =450=.
|
||||
|
||||
** --- Part Two ---
|
||||
The tile floor in the lobby is meant to be a living art exhibit. Every
|
||||
day, the tiles are all flipped according to the following rules:
|
||||
|
||||
- Any /black/ tile with /zero/ or /more than 2/ black tiles immediately
|
||||
adjacent to it is flipped to /white/.
|
||||
- Any /white/ tile with /exactly 2/ black tiles immediately adjacent to
|
||||
it is flipped to /black/.
|
||||
|
||||
Here, /tiles immediately adjacent/ means the six tiles directly touching
|
||||
the tile in question.
|
||||
|
||||
The rules are applied /simultaneously/ to every tile; put another way,
|
||||
it is first determined which tiles need to be flipped, then they are all
|
||||
flipped at the same time.
|
||||
|
||||
In the above example, the number of black tiles that are facing up after
|
||||
the given number of days has passed is as follows:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
Day 1: 15
|
||||
Day 2: 12
|
||||
Day 3: 25
|
||||
Day 4: 14
|
||||
Day 5: 23
|
||||
Day 6: 28
|
||||
Day 7: 41
|
||||
Day 8: 37
|
||||
Day 9: 49
|
||||
Day 10: 37
|
||||
|
||||
Day 20: 132
|
||||
Day 30: 259
|
||||
Day 40: 406
|
||||
Day 50: 566
|
||||
Day 60: 788
|
||||
Day 70: 1106
|
||||
Day 80: 1373
|
||||
Day 90: 1844
|
||||
Day 100: 2208
|
||||
#+END_EXAMPLE
|
||||
|
||||
After executing this process a total of 100 times, there would be
|
||||
/=2208=/ black tiles facing up.
|
||||
|
||||
/How many tiles will be black after 100 days?/
|
||||
|
||||
Your puzzle answer was =4059=.
|
||||
|
||||
Both parts of this puzzle are complete! They provide two gold stars: **
|
||||
|
||||
At this point, all that is left is for you to [[/2020][admire your
|
||||
Advent calendar]].
|
||||
|
||||
If you still want to see it, you can [[file:24/input][get your puzzle
|
||||
input]].
|
||||
|
||||
You can also [Shareon
|
||||
[[https://twitter.com/intent/tweet?text=I%27ve+completed+%22Lobby+Layout%22+%2D+Day+24+%2D+Advent+of+Code+2020&url=https%3A%2F%2Fadventofcode%2Ecom%2F2020%2Fday%2F24&related=ericwastl&hashtags=AdventOfCode][Twitter]]
|
||||
[[javascript:void(0);][Mastodon]]] this puzzle.
|
Reference in New Issue
Block a user