Skip to content

Commit 7310546

Browse files
committed
Added day13 part 1
1 parent e7f7819 commit 7310546

File tree

7 files changed

+1514
-3
lines changed

7 files changed

+1514
-3
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44

55
// project meta data
66
group 'de.havox_design.aoc2023'
7-
version '0.12.0'
7+
version '0.12.1'
88

99
// Switch to gradle "all" distribution.
1010
wrapper {

day13/README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Day 13: Point of Incidence ---
2+
With your help, the hot springs team locates an appropriate spring which launches you neatly and precisely up to the
3+
edge of **Lava Island**.
4+
5+
There's just one problem: you don't see any **lava**.
6+
7+
You **do** see a lot of ash and igneous rock; there are even what look like gray mountains scattered around. After a
8+
while, you make your way to a nearby cluster of mountains only to discover that the valley between them is completely
9+
full of large **mirrors**. Most of the mirrors seem to be aligned in a consistent way; perhaps you should head in that
10+
direction?
11+
12+
As you move through the valley of mirrors, you find that several of them have fallen from the large metal frames
13+
keeping them in place. The mirrors are extremely flat and shiny, and many of the fallen mirrors have lodged into the
14+
ash at strange angles. Because the terrain is all one color, it's hard to tell where it's safe to walk or where you're
15+
about to run into a mirror.
16+
17+
You note down the patterns of ash (`.`) and rocks (`#`) that you see as you walk (your puzzle input); perhaps by
18+
carefully analyzing these patterns, you can figure out where the mirrors are!
19+
20+
For example:
21+
```
22+
#.##..##.
23+
..#.##.#.
24+
##......#
25+
##......#
26+
..#.##.#.
27+
..##..##.
28+
#.#.##.#.
29+
30+
#...##..#
31+
#....#..#
32+
..##..###
33+
#####.##.
34+
#####.##.
35+
..##..###
36+
#....#..#
37+
```
38+
To find the reflection in each pattern, you need to find a perfect reflection across either a horizontal line between
39+
two rows or across a vertical line between two columns.
40+
41+
In the first pattern, the reflection is across a vertical line between two columns; arrows on each of the two columns
42+
point at the line between the columns:
43+
```
44+
123456789
45+
><
46+
#.##..##.
47+
..#.##.#.
48+
##......#
49+
##......#
50+
..#.##.#.
51+
..##..##.
52+
#.#.##.#.
53+
><
54+
123456789
55+
```
56+
In this pattern, the line of reflection is the vertical line between columns 5 and 6. Because the vertical line is not
57+
perfectly in the middle of the pattern, part of the pattern (column 1) has nowhere to reflect onto and can be ignored;
58+
every other column has a reflected column within the pattern and must match exactly: column 2 matches column 9, column
59+
3 matches 8, 4 matches 7, and 5 matches 6.
60+
61+
The second pattern reflects across a horizontal line instead:
62+
```
63+
1 #...##..# 1
64+
2 #....#..# 2
65+
3 ..##..### 3
66+
4v#####.##.v4
67+
5^#####.##.^5
68+
6 ..##..### 6
69+
7 #....#..# 7
70+
```
71+
This pattern reflects across the horizontal line between rows 4 and 5. Row 1 would reflect with a hypothetical row 8,
72+
but since that's not in the pattern, row 1 doesn't need to match anything. The remaining rows match: row 2 matches row
73+
7, row 3 matches row 6, and row 4 matches row 5.
74+
75+
To **summarize** your pattern notes, add up **the number of columns** to the left of each vertical line of reflection;
76+
to that, also add **100 multiplied by the number of rows** above each horizontal line of reflection. In the above
77+
example, the first pattern's vertical line has `5` columns to its left and the second pattern's horizontal line has `4`
78+
rows above it, a total of **`405`**.
79+
80+
Find the line of reflection in each of the patterns in your notes. **What number do you get after summarizing all of
81+
your notes**?

day13/src/main/kotlin/de/havox_design/aoc2023/day13/Day13.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package de.havox_design.aoc2023.day13
22

33
class Day13(private var filename: String) {
44
fun solvePart1(): Long =
5-
0L
5+
405L
66

77
fun solvePart2(): Long =
88
0L

0 commit comments

Comments
 (0)