229 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Advent of Code
 | 
						||
 | 
						||
--- Day 12: Garden Groups ---
 | 
						||
 | 
						||
   Why not search for the Chief Historian near the [16]gardener and his
 | 
						||
   [17]massive farm? There's plenty of food, so The Historians grab something
 | 
						||
   to eat while they search.
 | 
						||
 | 
						||
   You're about to settle near a complex arrangement of garden plots when
 | 
						||
   some Elves ask if you can lend a hand. They'd like to set up fences around
 | 
						||
   each region of garden plots, but they can't figure out how much fence they
 | 
						||
   need to order or how much it will cost. They hand you a map (your puzzle
 | 
						||
   input) of the garden plots.
 | 
						||
 | 
						||
   Each garden plot grows only a single type of plant and is indicated by a
 | 
						||
   single letter on your map. When multiple garden plots are growing the same
 | 
						||
   type of plant and are touching (horizontally or vertically), they form a
 | 
						||
   region. For example:
 | 
						||
 | 
						||
 AAAA
 | 
						||
 BBCD
 | 
						||
 BBCC
 | 
						||
 EEEC
 | 
						||
 | 
						||
   This 4x4 arrangement includes garden plots growing five different types of
 | 
						||
   plants (labeled A, B, C, D, and E), each grouped into their own region.
 | 
						||
 | 
						||
   In order to accurately calculate the cost of the fence around a single
 | 
						||
   region, you need to know that region's area and perimeter.
 | 
						||
 | 
						||
   The area of a region is simply the number of garden plots the region
 | 
						||
   contains. The above map's type A, B, and C plants are each in a region of
 | 
						||
   area 4. The type E plants are in a region of area 3; the type D plants are
 | 
						||
   in a region of area 1.
 | 
						||
 | 
						||
   Each garden plot is a square and so has four sides. The perimeter of a
 | 
						||
   region is the number of sides of garden plots in the region that do not
 | 
						||
   touch another garden plot in the same region. The type A and C plants are
 | 
						||
   each in a region with perimeter 10. The type B and E plants are each in a
 | 
						||
   region with perimeter 8. The lone D plot forms its own region with
 | 
						||
   perimeter 4.
 | 
						||
 | 
						||
   Visually indicating the sides of plots in each region that contribute to
 | 
						||
   the perimeter using - and |, the above map's regions' perimeters are
 | 
						||
   measured as follows:
 | 
						||
 | 
						||
 +-+-+-+-+
 | 
						||
 |A A A A|
 | 
						||
 +-+-+-+-+     +-+
 | 
						||
               |D|
 | 
						||
 +-+-+   +-+   +-+
 | 
						||
 |B B|   |C|
 | 
						||
 +   +   + +-+
 | 
						||
 |B B|   |C C|
 | 
						||
 +-+-+   +-+ +
 | 
						||
           |C|
 | 
						||
 +-+-+-+   +-+
 | 
						||
 |E E E|
 | 
						||
 +-+-+-+
 | 
						||
 | 
						||
   Plants of the same type can appear in multiple separate regions, and
 | 
						||
   regions can even appear within other regions. For example:
 | 
						||
 | 
						||
 OOOOO
 | 
						||
 OXOXO
 | 
						||
 OOOOO
 | 
						||
 OXOXO
 | 
						||
 OOOOO
 | 
						||
 | 
						||
   The above map contains five regions, one containing all of the O garden
 | 
						||
   plots, and the other four each containing a single X plot.
 | 
						||
 | 
						||
   The four X regions each have area 1 and perimeter 4. The region containing
 | 
						||
   21 type O plants is more complicated; in addition to its outer edge
 | 
						||
   contributing a perimeter of 20, its boundary with each X region
 | 
						||
   contributes an additional 4 to its perimeter, for a total perimeter of 36.
 | 
						||
 | 
						||
   Due to "modern" business practices, the price of fence required for a
 | 
						||
   region is found by multiplying that region's area by its perimeter. The
 | 
						||
   total price of fencing all regions on a map is found by adding together
 | 
						||
   the price of fence for every region on the map.
 | 
						||
 | 
						||
   In the first example, region A has price 4 * 10 = 40, region B has price 4
 | 
						||
   * 8 = 32, region C has price 4 * 10 = 40, region D has price 1 * 4 = 4,
 | 
						||
   and region E has price 3 * 8 = 24. So, the total price for the first
 | 
						||
   example is 140.
 | 
						||
 | 
						||
   In the second example, the region with all of the O plants has price 21 *
 | 
						||
   36 = 756, and each of the four smaller X regions has price 1 * 4 = 4, for
 | 
						||
   a total price of 772 (756 + 4 + 4 + 4 + 4).
 | 
						||
 | 
						||
   Here's a larger example:
 | 
						||
 | 
						||
 RRRRIICCFF
 | 
						||
 RRRRIICCCF
 | 
						||
 VVRRRCCFFF
 | 
						||
 VVRCCCJFFF
 | 
						||
 VVVVCJJCFE
 | 
						||
 VVIVCCJJEE
 | 
						||
 VVIIICJJEE
 | 
						||
 MIIIIIJJEE
 | 
						||
 MIIISIJEEE
 | 
						||
 MMMISSJEEE
 | 
						||
 | 
						||
   It contains:
 | 
						||
 | 
						||
     • A region of R plants with price 12 * 18 = 216.
 | 
						||
     • A region of I plants with price 4 * 8 = 32.
 | 
						||
     • A region of C plants with price 14 * 28 = 392.
 | 
						||
     • A region of F plants with price 10 * 18 = 180.
 | 
						||
     • A region of V plants with price 13 * 20 = 260.
 | 
						||
     • A region of J plants with price 11 * 20 = 220.
 | 
						||
     • A region of C plants with price 1 * 4 = 4.
 | 
						||
     • A region of E plants with price 13 * 18 = 234.
 | 
						||
     • A region of I plants with price 14 * 22 = 308.
 | 
						||
     • A region of M plants with price 5 * 12 = 60.
 | 
						||
     • A region of S plants with price 3 * 8 = 24.
 | 
						||
 | 
						||
   So, it has a total price of 1930.
 | 
						||
 | 
						||
   What is the total price of fencing all regions on your map?
 | 
						||
 | 
						||
   Your puzzle answer was 1522850.
 | 
						||
 | 
						||
--- Part Two ---
 | 
						||
 | 
						||
   Fortunately, the Elves are trying to order so much fence that they qualify
 | 
						||
   for a bulk discount!
 | 
						||
 | 
						||
   Under the bulk discount, instead of using the perimeter to calculate the
 | 
						||
   price, you need to use the number of sides each region has. Each straight
 | 
						||
   section of fence counts as a side, regardless of how long it is.
 | 
						||
 | 
						||
   Consider this example again:
 | 
						||
 | 
						||
 AAAA
 | 
						||
 BBCD
 | 
						||
 BBCC
 | 
						||
 EEEC
 | 
						||
 | 
						||
   The region containing type A plants has 4 sides, as does each of the
 | 
						||
   regions containing plants of type B, D, and E. However, the more complex
 | 
						||
   region containing the plants of type C has 8 sides!
 | 
						||
 | 
						||
   Using the new method of calculating the per-region price by multiplying
 | 
						||
   the region's area by its number of sides, regions A through E have prices
 | 
						||
   16, 16, 32, 4, and 12, respectively, for a total price of 80.
 | 
						||
 | 
						||
   The second example above (full of type X and O plants) would have a total
 | 
						||
   price of 436.
 | 
						||
 | 
						||
   Here's a map that includes an E-shaped region full of type E plants:
 | 
						||
 | 
						||
 EEEEE
 | 
						||
 EXXXX
 | 
						||
 EEEEE
 | 
						||
 EXXXX
 | 
						||
 EEEEE
 | 
						||
 | 
						||
   The E-shaped region has an area of 17 and 12 sides for a price of 204.
 | 
						||
   Including the two regions full of type X plants, this map has a total
 | 
						||
   price of 236.
 | 
						||
 | 
						||
   This map has a total price of 368:
 | 
						||
 | 
						||
 AAAAAA
 | 
						||
 AAABBA
 | 
						||
 AAABBA
 | 
						||
 ABBAAA
 | 
						||
 ABBAAA
 | 
						||
 AAAAAA
 | 
						||
 | 
						||
   It includes two regions full of type B plants (each with 4 sides) and a
 | 
						||
   single region full of type A plants (with 4 sides on the outside and 8
 | 
						||
   more sides on the inside, a total of 12 sides). Be especially careful when
 | 
						||
   counting the fence around regions like the one full of type A plants; in
 | 
						||
   particular, each section of fence has an in-side and an out-side, so the
 | 
						||
   fence does not connect across the middle of the region (where the two B
 | 
						||
   regions touch diagonally). (The Elves would have used the Möbius Fencing
 | 
						||
   Company instead, but their contract terms were too one-sided.)
 | 
						||
 | 
						||
   The larger example from before now has the following updated prices:
 | 
						||
 | 
						||
     • A region of R plants with price 12 * 10 = 120.
 | 
						||
     • A region of I plants with price 4 * 4 = 16.
 | 
						||
     • A region of C plants with price 14 * 22 = 308.
 | 
						||
     • A region of F plants with price 10 * 12 = 120.
 | 
						||
     • A region of V plants with price 13 * 10 = 130.
 | 
						||
     • A region of J plants with price 11 * 12 = 132.
 | 
						||
     • A region of C plants with price 1 * 4 = 4.
 | 
						||
     • A region of E plants with price 13 * 8 = 104.
 | 
						||
     • A region of I plants with price 14 * 16 = 224.
 | 
						||
     • A region of M plants with price 5 * 6 = 30.
 | 
						||
     • A region of S plants with price 3 * 6 = 18.
 | 
						||
 | 
						||
   Adding these together produces its new total price of 1206.
 | 
						||
 | 
						||
   What is the new total price of fencing all regions on your map?
 | 
						||
 | 
						||
   Your puzzle answer was 953738.
 | 
						||
 | 
						||
   Both parts of this puzzle are complete! They provide two gold stars: **
 | 
						||
 | 
						||
   At this point, you should [18]return to your Advent calendar and try
 | 
						||
   another puzzle.
 | 
						||
 | 
						||
   If you still want to see it, you can [19]get your puzzle input.
 | 
						||
 | 
						||
References
 | 
						||
 | 
						||
   Visible links
 | 
						||
   1. https://adventofcode.com/
 | 
						||
   2. https://adventofcode.com/2024/about
 | 
						||
   3. https://adventofcode.com/2024/events
 | 
						||
   4. https://cottonbureau.com/people/advent-of-code
 | 
						||
   5. https://adventofcode.com/2024/settings
 | 
						||
   6. https://adventofcode.com/2024/auth/logout
 | 
						||
   7. Advent of Code Supporter
 | 
						||
	https://adventofcode.com/2024/support
 | 
						||
   8. https://adventofcode.com/2024
 | 
						||
   9. https://adventofcode.com/2024
 | 
						||
  10. https://adventofcode.com/2024/support
 | 
						||
  12. https://adventofcode.com/2024/leaderboard
 | 
						||
  13. https://adventofcode.com/2024/stats
 | 
						||
  16. https://adventofcode.com/2023/day/5
 | 
						||
  17. https://adventofcode.com/2023/day/21
 | 
						||
  18. https://adventofcode.com/2024
 | 
						||
  19. https://adventofcode.com/2024/day/12/input
 |