Browse Source

tag 9, 10-1, 11-1, 12-1

Steffen Burkowitz 4 years ago
parent
commit
76b29e8f01

+ 108 - 0
puzzleInput/day10-1.txt

@@ -0,0 +1,108 @@
+147
+174
+118
+103
+67
+33
+96
+28
+43
+22
+16
+138
+75
+148
+35
+6
+10
+169
+129
+115
+21
+52
+58
+79
+46
+7
+139
+104
+91
+51
+172
+57
+49
+126
+95
+149
+125
+123
+112
+30
+78
+44
+37
+167
+157
+29
+173
+98
+36
+63
+111
+160
+18
+8
+9
+159
+179
+72
+110
+2
+53
+150
+17
+81
+97
+108
+102
+56
+135
+166
+168
+163
+1
+25
+3
+158
+101
+132
+144
+45
+140
+34
+156
+178
+105
+68
+153
+80
+82
+59
+50
+122
+69
+85
+109
+40
+124
+119
+94
+88
+13
+180
+177
+133
+66
+134
+60
+141

+ 11 - 0
puzzleInput/day10-2.txt

@@ -0,0 +1,11 @@
+16
+10
+15
+5
+1
+11
+7
+19
+6
+12
+4

+ 31 - 0
puzzleInput/day10-3.txt

@@ -0,0 +1,31 @@
+28
+33
+18
+42
+31
+14
+46
+20
+48
+47
+24
+23
+49
+45
+19
+38
+39
+11
+1
+32
+25
+35
+8
+17
+7
+9
+4
+2
+34
+10
+3

+ 99 - 0
puzzleInput/day11-1.txt

@@ -0,0 +1,99 @@
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLL.LLLL.LLLLLLLLL..LLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLL
+LLLLLLLLLL.L.LLLLLLL.LL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLL.L.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLL.LLLLL.LL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+LLL.LL..L..L.LL.L.L........L.............LLL....LL...L..L.L.....L..L.L.......L..L......LLLL.L.L
+LLLLLLLLLLLLLLLLL..LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLL
+LLLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLL.L.L.LL.LLLLLLLLLLLLL.LL.LLLLLLLLLLL
+LLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LL.LLLLLLLLL.LLLLL.
+LLLLLLLLLLLLLLLLL..LLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLL.L..LLLLLLLL.LLLL.LLLLLL..LLLLLLLLLLLLLLL.LLLL.LLLLLL
+L.LLLLLLLL..LLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLL.LLLLLL
+.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLL
+LL.L..LL...LL..L..L.L.L.....L..LL...L.LLL......L.L...L.LL...L.L.L.........L.LL....L.LL.LL...LL.
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.L.LLLLLLLLLLLLLL.LLL..LLLLLL
+LLLLL.LLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLL.L.LLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLL
+LLL.LLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLL.L.LL.LLLLLLLLLLLL.LLLL.LLL.LL.LLLLLLLLLLLLLLLLLLLLL.LL.LLL
+LLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+...L...L..L.L...L..L......L.......L.L...L...L...L.....L...L...L....L...LL..L..L.............LL.
+LLL..LLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLLLLLL.LLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLL.LLLLL
+LLLLLLLLLL.LLL..LLLLLLL.L.LLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLL
+LLLLLL.L.L.L.LLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLL.
+LLLLLL.LLL.LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLL.
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLL.L.LL.LLLLLL.LLLLLLLL..LLLLLLLLLLL.LLLLLL
+LLLLLL.LLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLL..LLLLLLLLL.LL.LLLLLL
+LLLLLLLLLLLLLLLLLLLLLL..LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLLLL.LLLLL.L.LLLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LL.LLLL.LLLL.LLLLLL
+.L......L..L........LL..LLL...LL.L.....L..L.L..LLL..LLL..LL.LL...LLL.......L...LL...........LLL
+LLLLLLLLLL.LL.LLLL.LLLL.LLLLLLL.LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLLLLLLLLLLLL.LL.L.L.LLLLLLLLLLLLL.LLLLLLL.LLL..LLLLLL
+LLLLLL.LLL.LLLLLLL.LLLLLLLLL.LL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLLL
+LLLLLLLLLLLLLLLL.L.LLLL.LLLLLL..LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL..LLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLL.LL.LLLLL.LL.L.LL.LLLLLLLLLLL
+LLLLLL.LLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLL.LLLLLLLLLLLLLLL..LLLL.LLLLLL
+LL.LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLLLL.LLLL..LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLL
+........LL.L..LLLL..L..LLLL..LLL.........L.L......LL.LL..L........L...L..LL..LLLL.L.L.....L.LL.
+LL.LLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLL..LLLLLLLLLLLLLLLL.LLLLL.L..LL
+LLLLLLLLL.LLLLLLLL.LLL..LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLL
+LL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLL.LLLLLLLLLL.LLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLL..LLLLLLL.LLLL.LLLLLL
+LLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL..LLL.LLLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLL.L
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LL.LLLL..LLLLLLLLLLLLLLLLLLL
+..LL..LLL.....LL......L..L.L.LLL........LL......LLL...L......L.LL..L.LL.LL.L.......LL....LL...L
+.LL.LLLLLLLLLLLLLL.L.LL.LLLLLLL.LLL.LL...L.L.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLL.LLLLLL
+L.LLLLLLLLLLLL.LLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLL.LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL..L.LLLL.LLLLLLLL..LLL.LLLLLLL.LLLLLL
+.LLLLLLLLL.LLL.LLL.LLLL.LLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+L..L...LL...L.LL....L.LL.L..LL.L.........L.........LLLL..L.L..LL...L.L.L....LLL.....L..L.L...LL
+.LLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLL.LLLL.LLLLL.LLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.L..LLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LL.LLLLL.LL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+L.LLLLLLLL.LLLLLLLLLLLL.LLLL.LL..LLLLL.LLLL.LLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLLLLLL.L.LLLL.LLLLLL
+LLLLLLLLLL..LLLLLL.LLLLLLLLLLLL.L.LLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL..LL.LLLL.LLLLLLL.LLLL.LLLLLL
+LLL.LLLLLLLLLLLLLL.LLLLLLLLLLLL.LL.LLL.LLLLL.LLLLL.LLL.LLLL.LLLLLL.LL.LLLL..LLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLL..LLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLL
+L.L...L...L..L..L....L...L..LLL..L....L..LL...LLL.LL.L...L.L..L.LLL..L....L.L...LL..L..L.L..L.L
+LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.L
+LLLLLLLLLL.LLLLL.L.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLL
+L..LLLLLLLLL.LLLLL.L.LLLLLL.LLL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LL.LLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLL.LLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LL.L.LLL.LLLLLLLLL.LL.LLLL.LLLLLL
+....L....L..L.....L....L..LL....L.L..L..LL.LLL...L.....L.LLL.L.LL.....L....L.L........L.LLL....
+L.L.LL.LLL.LLLLL.L.LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LL.LLLL.LLLLLL
+LLLLLLLLL.LLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLL.LLLLLL.LLLLLLL.LLLLLLLL.LLLL.LLLLLL
+LLLLLLLLL.LL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLLLLLLL..LLL.L..LLL.LLL.L.LL.LLLLLL..LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLL.LL.LLLLLLL.LLLL.LLLLLL
+.....LL.LL.L.....LL.LL..L...L...LLLLL......L.L....LL...LLL...LLLLL..LL..L....L......L.......L.L
+LLLLLLLLLL.LLLL.LL.LLLL.L.LLLLL.LLLLLL.LL.LL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLL.LL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.L
+LLLL.LLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLL..LLLLLLL.L.LL..LLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLL.LL.LLLLLLLL.LLLL.LLLLLLLLLLLLLL
+LLLLLLLLLLLLL.LLLLLLLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLL
+..LLL..L..L...L..L..L.L.....L............L.....L..L....L.LL......L.....L..LLL..L.L..L..........
+LLL.LLLLLL.LLLLLLLLLLLL.LL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLLL.LLLL.L.L.LLLL.LLLLLLLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LL.LL.LLLLLLLLLL.LLL.LL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
+.LLLLLLLLL.LLLL.LLLLLLLLLLLLL...LL.L.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLL.L.LLLLLL
+LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLL.LLL.LLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLL.LLL.L.LLLLLLLL.LLLLLL..LLLLLLLLLLL
+.LLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+.L.....LL......L........L.L....LLL......L...L.LL...L...L..LL................L...L..L...........
+LLLLLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LL.LLL.LLLLLLL
+LLLLLL.LLL.LLLLLL..LLL..LLLLLL..LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL..LLLLLLLLLL
+LLLLLL..LL.LLLLLLL.LLLL.LLLL.LL.LLL.LL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LL.L.LLLLLL.L.LLLLLL.LLLLLLLLLLLLLLLL.LL
+LLLLLLLLLL.LLLLLL.LLLLLLL.LLLLL.LLLLL.LLLLLL.L.LLLLLLL.LL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LL.L.LLLLLL
+LLLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLL.LLL.L.L.LLLLLLLLLLLL.LLLL.L.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+....LLL...LLL.....L.L...LL...L..L....LL...L.L.LLLLL....L......LLLL......L..LLLLL.L.LL...LL..LLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LL.LLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+.LLLLLLLLL.L..LLLLLLLLLLLLLLLLL.LLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.L.L.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLL..LLLLLL.LLLL.L.LLLL

+ 10 - 0
puzzleInput/day11-2.txt

@@ -0,0 +1,10 @@
+L.LL.LL.LL
+LLLLLLL.LL
+L.L.L..L..
+LLLL.LL.LL
+L.LL.LL.LL
+L.LLLLL.LL
+..L.L.....
+LLLLLLLLLL
+L.LLLLLL.L
+L.LLLLL.LL

+ 784 - 0
puzzleInput/day12-1.txt

@@ -0,0 +1,784 @@
+R90
+F88
+R180
+F98
+S5
+F14
+S4
+L270
+S1
+R90
+F34
+R90
+F96
+N1
+E5
+F94
+R90
+N1
+E1
+R90
+S5
+F59
+S2
+L90
+E2
+L90
+S1
+W3
+N2
+L90
+S1
+F32
+F92
+N1
+F10
+E2
+F92
+N1
+E4
+F68
+W1
+R90
+F53
+N3
+F29
+S1
+R180
+W5
+R90
+E1
+F79
+W2
+R90
+F70
+S2
+F17
+S5
+S3
+F41
+N4
+E5
+F65
+E1
+N4
+E4
+S3
+F1
+N1
+E5
+F73
+S5
+F4
+L90
+F100
+E2
+S5
+E2
+F67
+N3
+F27
+S4
+E4
+F12
+S4
+W3
+W2
+F10
+L90
+N5
+E2
+R90
+W4
+F76
+S5
+F48
+R90
+F28
+L90
+F36
+N4
+F27
+E4
+N3
+F12
+L90
+S1
+R180
+S2
+F77
+E2
+N5
+E3
+S2
+E1
+L90
+E5
+W4
+F3
+W4
+L90
+N2
+E1
+F61
+W4
+F12
+N2
+F41
+W2
+W4
+L90
+W3
+F42
+S5
+W4
+N5
+E5
+F94
+W5
+R90
+W3
+R90
+E2
+S3
+L90
+E1
+S4
+W1
+L90
+E4
+F57
+S3
+S4
+W4
+S1
+W2
+F22
+W5
+L180
+F93
+R90
+N2
+R90
+E5
+R180
+E5
+F22
+R90
+F61
+E4
+L180
+E2
+L90
+W5
+L90
+N1
+E1
+N3
+W3
+L90
+N2
+W4
+S1
+L180
+W5
+S4
+F69
+R90
+N2
+R90
+N3
+R90
+F100
+S2
+L180
+F13
+S4
+E3
+L90
+F88
+W3
+N4
+R90
+W3
+R90
+F19
+E4
+F28
+W3
+R90
+N2
+F5
+W4
+F88
+S3
+L180
+F14
+N4
+R180
+W3
+N1
+F87
+N2
+F73
+S1
+F53
+N1
+L90
+S2
+L180
+W5
+N2
+L90
+R90
+F1
+L90
+E1
+R90
+N3
+F73
+E4
+F58
+S5
+E3
+E4
+F88
+L90
+E3
+L90
+F8
+N2
+W3
+F62
+S3
+F25
+E3
+N5
+F24
+F21
+W1
+S3
+W3
+F18
+S5
+F93
+L90
+N3
+L180
+S5
+F55
+W1
+F38
+L90
+E2
+L180
+F66
+S3
+F55
+R90
+N5
+R90
+F31
+R90
+F70
+L90
+E3
+L90
+E1
+F95
+W3
+E5
+L90
+F58
+R90
+F26
+R90
+L180
+N1
+F14
+L90
+N4
+E5
+S2
+E1
+R90
+W5
+S5
+L90
+S5
+R270
+F96
+L90
+W3
+F48
+S5
+W4
+F76
+L90
+S3
+W5
+S3
+F71
+S1
+F96
+N4
+R90
+E5
+F16
+L270
+N2
+L90
+N2
+R90
+S1
+N2
+R90
+F13
+L90
+N2
+L90
+F67
+R180
+F26
+R270
+R270
+W1
+S4
+R180
+E2
+F86
+S5
+E5
+N4
+W5
+N4
+L90
+E4
+F96
+R180
+F61
+W4
+L90
+F45
+L90
+F62
+E4
+N5
+E4
+R90
+N3
+L90
+F53
+N4
+W1
+L90
+F82
+F33
+N3
+F24
+R90
+F97
+E3
+F13
+N5
+R90
+W4
+N1
+E5
+L90
+E2
+L180
+S2
+F41
+N1
+E2
+S1
+F98
+E2
+R180
+F70
+N4
+F33
+N5
+F64
+R180
+W1
+R180
+F24
+N1
+L180
+W1
+L90
+E1
+N3
+E1
+L90
+W3
+S5
+E4
+L90
+W1
+F26
+L90
+N1
+W2
+F22
+W4
+S1
+R90
+S3
+R90
+F7
+E1
+S5
+W5
+L180
+F55
+E4
+N5
+R90
+F29
+L90
+S3
+F9
+S4
+R270
+F72
+W4
+N3
+L180
+W2
+L90
+S4
+F84
+N1
+F40
+N3
+F100
+N5
+R180
+S4
+R90
+S2
+L90
+W1
+N5
+E4
+S5
+R90
+F23
+L90
+E4
+E1
+R180
+S2
+F81
+S5
+E1
+E1
+R90
+F72
+N2
+W4
+S3
+L180
+N5
+W2
+F50
+W5
+F28
+L90
+E3
+R90
+N2
+N2
+L90
+N5
+F84
+N5
+F85
+W3
+L90
+F55
+E2
+R90
+W5
+R90
+W1
+F4
+N4
+L180
+N1
+E1
+R180
+E4
+L270
+E5
+R90
+F60
+N1
+W5
+N3
+E5
+R90
+F73
+E3
+N4
+W1
+F32
+R90
+E3
+L90
+F91
+E3
+S3
+W2
+L90
+E1
+L90
+E1
+N5
+L180
+F87
+W3
+N4
+F78
+W5
+L90
+F34
+N4
+R90
+E5
+R180
+N2
+F52
+W4
+L90
+E1
+F17
+S2
+E3
+L180
+E3
+E2
+N5
+E5
+R90
+S1
+W3
+N5
+L90
+W1
+F13
+W4
+S4
+N5
+E5
+S4
+F26
+E5
+F59
+W1
+N4
+S4
+L90
+F85
+L90
+W5
+R90
+S1
+E2
+F86
+R90
+S2
+R90
+F72
+L270
+W5
+W4
+L90
+N2
+R90
+F12
+R90
+F21
+R180
+S4
+L180
+E5
+R90
+S5
+W5
+F87
+E3
+R90
+E3
+S1
+L270
+F74
+R90
+S3
+W5
+F3
+R90
+W2
+L90
+F11
+S2
+W3
+R90
+S3
+N1
+W4
+F67
+S1
+E2
+N4
+L270
+E5
+L90
+N1
+E2
+F75
+E1
+L90
+F63
+E4
+R90
+S4
+F62
+N5
+E4
+N4
+F65
+S2
+W2
+F15
+R90
+W3
+W5
+F71
+R90
+S1
+L90
+S1
+F43
+S3
+F82
+L90
+F7
+W1
+S3
+E2
+E1
+S1
+F74
+R90
+N4
+E4
+F12
+W2
+L180
+S2
+E2
+S1
+F5
+N5
+W5
+N5
+S1
+W5
+F42
+S5
+L90
+N2
+F2
+W2
+R90
+S4
+L180
+F53
+W5
+R90
+F38
+L90
+W3
+W3
+F50
+R90
+N4
+F25
+E1
+N5
+E4
+S3
+F50
+L90
+E2
+R180
+F31
+S1
+E5
+F46
+L90
+E3
+F88
+L90
+F95
+N4
+F57
+S4
+E4
+R270
+R90
+E5
+F11
+R90
+N5
+L90
+F54
+N2
+W2
+F32
+N4
+R270
+S2
+F44
+R90
+R90
+W4
+L90
+F78
+F42
+W1
+R90
+N5
+F83
+W2
+L90
+W3
+L180
+S1
+R90
+F38
+S5
+N2
+F46
+W3
+F83
+W3
+R90
+F41
+W1
+R180
+E4
+N1
+F39
+F36
+S3
+L90
+E3
+F42
+N3
+E4
+F60

+ 5 - 0
puzzleInput/day12-2.txt

@@ -0,0 +1,5 @@
+F10
+N3
+F7
+R90
+F11

+ 1000 - 0
puzzleInput/day9-1.txt

@@ -0,0 +1,1000 @@
+38
+18
+28
+41
+37
+17
+24
+45
+50
+35
+9
+30
+11
+8
+40
+43
+46
+36
+33
+19
+14
+32
+3
+7
+16
+42
+10
+12
+13
+25
+52
+15
+21
+18
+29
+17
+20
+22
+11
+51
+23
+24
+34
+30
+26
+33
+14
+50
+27
+28
+31
+36
+44
+32
+35
+25
+37
+38
+40
+59
+39
+41
+42
+43
+70
+55
+45
+57
+46
+47
+58
+80
+52
+68
+53
+56
+60
+95
+62
+63
+72
+75
+77
+79
+109
+174
+83
+139
+96
+91
+92
+98
+93
+99
+100
+254
+120
+428
+161
+162
+154
+149
+195
+153
+232
+334
+581
+156
+170
+175
+176
+189
+197
+187
+183
+190
+191
+199
+219
+220
+309
+269
+302
+372
+345
+751
+305
+323
+410
+331
+326
+332
+339
+346
+374
+359
+370
+769
+382
+373
+381
+419
+418
+439
+489
+592
+571
+607
+651
+669
+628
+665
+685
+709
+657
+658
+1068
+792
+705
+1151
+729
+1060
+754
+763
+791
+1010
+1342
+857
+928
+1146
+1163
+1178
+1297
+1515
+1648
+1285
+1438
+1315
+1362
+1363
+1387
+1434
+1459
+1468
+1483
+1492
+1517
+1926
+1620
+1719
+2091
+2003
+2020
+3237
+2309
+2341
+2475
+3011
+2927
+4242
+3640
+2821
+2893
+2846
+4540
+2917
+2902
+4305
+2985
+6130
+3009
+4728
+4094
+3339
+3722
+4023
+4312
+4329
+5294
+4650
+4816
+5296
+8142
+5667
+5714
+5723
+5902
+6707
+8625
+5819
+8708
+8067
+5994
+6324
+6348
+10231
+9006
+9608
+11115
+11625
+10653
+8641
+8979
+9466
+10112
+10483
+10963
+11437
+11381
+11533
+11542
+12672
+14635
+16106
+19949
+17046
+28483
+15814
+22914
+17647
+17620
+17985
+19604
+18107
+18445
+39446
+18753
+19091
+19578
+30985
+34091
+33726
+27251
+24053
+23075
+24214
+27307
+30449
+36137
+36430
+36092
+41861
+33434
+36860
+38669
+66586
+42679
+37198
+36552
+54997
+79211
+37844
+42166
+42653
+47128
+47289
+51360
+48267
+50382
+59505
+51521
+60741
+63883
+69526
+88558
+74396
+80523
+69986
+75221
+148063
+73750
+79851
+88719
+80010
+89294
+99788
+80497
+84819
+102158
+94417
+98649
+131211
+168409
+101903
+148702
+112262
+149996
+137633
+143276
+252154
+143736
+184607
+182248
+148971
+217026
+175653
+164829
+160507
+165316
+259246
+186722
+179236
+272769
+193066
+196320
+200552
+255998
+375556
+364416
+249895
+347564
+292707
+280909
+309478
+309052
+304243
+314287
+342037
+354889
+325336
+530804
+339743
+365958
+526800
+648795
+554792
+435234
+465835
+389386
+859035
+493259
+604784
+542602
+554138
+941502
+573616
+780122
+885693
+613295
+1376736
+963002
+669176
+1047397
+665079
+691294
+1567786
+1222411
+755344
+824620
+928493
+855221
+901069
+882645
+931988
+1334260
+1147386
+1096740
+1207681
+1127754
+1282471
+1186911
+1304589
+1278374
+1334255
+1446638
+1356373
+1360470
+1420423
+2010399
+1579964
+1610565
+1951961
+1656413
+2011531
+1737866
+1756290
+2660962
+1814633
+2214459
+2224494
+3076836
+3804458
+2628104
+2314665
+3184504
+2638844
+2915154
+2612629
+2690628
+4208068
+3531925
+2780893
+3000387
+5691015
+3190529
+3266978
+4537183
+3394279
+5315052
+3552499
+3570923
+4029092
+4039127
+4438953
+4539159
+5708944
+4927294
+5527783
+6661257
+5251473
+7833232
+5781280
+5303257
+5471521
+8718312
+8505581
+5971422
+7610050
+7229656
+6457507
+11162549
+6946778
+11385731
+7123422
+7581591
+8478080
+8068219
+8578286
+8978112
+9466453
+10779256
+10554730
+13849499
+11222895
+13084705
+10774778
+11084537
+11274679
+15841734
+12428929
+12918200
+21777625
+13404285
+14525726
+15601502
+14070200
+14528369
+19752759
+19532842
+15649810
+16546299
+20550990
+22870738
+18444565
+20021183
+21329508
+21639267
+21859315
+31251312
+26488990
+26926271
+26988400
+23703608
+25347129
+25833214
+26322485
+44200246
+53248756
+22406676
+47692529
+28598569
+32196109
+34094375
+38185566
+34990864
+36567482
+38465748
+43188823
+40083832
+41350691
+61082775
+43498582
+51005245
+64298962
+46110284
+47753805
+48239890
+48729161
+60824078
+52155699
+86425456
+56501051
+79888638
+67186973
+60794678
+62692944
+66290484
+69085239
+71558346
+73456612
+105881767
+78549580
+81434523
+123487622
+84849273
+98265983
+91738472
+93864089
+148239523
+94350174
+99909504
+96969051
+100884860
+123688024
+145014958
+117295729
+119193995
+142581582
+127085162
+128983428
+135375723
+139747096
+166054290
+159984103
+195235034
+163398853
+173172995
+175298612
+176587745
+178713362
+185602561
+186088646
+302401386
+191319225
+194259678
+196878555
+260868963
+243466442
+236489724
+244380891
+246279157
+248177423
+262460885
+256068590
+411576276
+321464369
+299731199
+323382956
+430469537
+494966233
+420054187
+351886357
+354011974
+355301107
+607954947
+371691207
+377407871
+668231610
+385578903
+757270110
+433368279
+479956166
+623114155
+480870615
+490660048
+494456580
+562192084
+651617556
+579451546
+621195568
+644847325
+675269313
+677394930
+723577564
+705898331
+707187464
+725703181
+862351255
+726992314
+749099078
+1108637592
+818947182
+971530663
+1430765028
+1371839639
+913324445
+970616214
+1146074136
+1322242255
+985116628
+1200647114
+1513968811
+1286639010
+1224298871
+2430879847
+1320116638
+1352664243
+1383293261
+1450569878
+1413085795
+1432890645
+1719715292
+2559207470
+1568046260
+2415881656
+1732271627
+1790477845
+2131190764
+2920362406
+1883940659
+1898441073
+1955732842
+2185763742
+3415996475
+2209415499
+3241047723
+2510937881
+3905479034
+4386612689
+2672780881
+2703409899
+4056074142
+6336358881
+3018616138
+2845976440
+3000936905
+3358524105
+3300317887
+3451986919
+3616212286
+6204500545
+4069704401
+3782381732
+3839673501
+4917057211
+3854173915
+4141496584
+7441814471
+7310752124
+5450463222
+5214347780
+5376190780
+6526954796
+5673717786
+5518757321
+6844906483
+7757708870
+5846913345
+5864592578
+6146294327
+11360642107
+9504818432
+8369044130
+7068199205
+7398594018
+12444389985
+7622055233
+7636555647
+7693847416
+7995670499
+17126873665
+9355844364
+13155312968
+10590538560
+14881009212
+11192475107
+10894948101
+11365670666
+22973787010
+11383349899
+11711505923
+11993207672
+12010886905
+12932791783
+18781943917
+14466793223
+14690254438
+15063869704
+14704754852
+15020649251
+25585202539
+19059518082
+19019905546
+25958817805
+18586209059
+20739194263
+24866818891
+21973888459
+21485486661
+22087423208
+25897229959
+22905835006
+22749020565
+23094855822
+23376557571
+23704713595
+29395009290
+24943678688
+29171548075
+29710903689
+35803063967
+34040554797
+39798712345
+29725404103
+37108072459
+37606114605
+48784922185
+39325403322
+43488214828
+40071695720
+60746742655
+43572909869
+44722909024
+44234507226
+92357832054
+45654855571
+52144029855
+46453734160
+46471413393
+47081271166
+48648392283
+54115226763
+62549793293
+58882451764
+91315778392
+73298313972
+63765958900
+66833476562
+76433475781
+90377764595
+89750144460
+79397099042
+97798885426
+83559910548
+94186922483
+89889362797
+87807417095
+114693823148
+112997678527
+92108589731
+92126268964
+98597764015
+227691501675
+100586640156
+95729663449
+152927557888
+116665020056
+121432245057
+159469091920
+130599435462
+140199434681
+143163057942
+156583621022
+243749698098
+183537080544
+167204516137
+247276509015
+171367327643
+173449273345
+177696779892
+179916006826
+235271647673
+184234858695
+187838253180
+222018885213
+187855932413
+395468158558
+307403950818
+320132074025
+535667593239
+238097265113
+371393012957
+261631679738
+297803951599
+270798870143
+545501215931
+365181943155
+323788137159
+351439374832
+573164938450
+338571843780
+351146053237
+448495650035
+353365280171
+365552712305
+364150865521
+375694185593
+449469932918
+739845051114
+559435631337
+511644069572
+569035630556
+499728944851
+568602821742
+642191883100
+508896135256
+532430549881
+600203523518
+662985894754
+594587007302
+662359980939
+907607474336
+1008905564255
+689717897017
+702722709301
+995557163271
+1564592793827
+815022645223
+717516145692
+729703577826
+887338255165
+825164118511
+1442567760415
+1008625080107
+1324290585128
+1214366778873
+1685275060288
+1032159494732
+1231588716496
+1041326685137
+1103483142558
+1948934159473
+1194790530820
+1256946988241
+1365082690240
+2880065591108
+2240213796603
+1392440606318
+2379615439050
+1420238854993
+1544726223049
+1447219723518
+2812302413758
+1542680264203
+1554867696337
+3705229709619
+1833789198618
+2298273673378
+2040784574839
+2550702866076
+2812679461311
+2811814684578
+2678808440014
+2272915401633
+2615029385813
+5426844070391
+2677185843234
+3376469462821
+2839660329836
+4259899184829
+2867458578511
+3853141369715
+5397867592764
+6320259095432
+3281008922136
+2989899987721
+5679760992269
+3097547960540
+3583464839042
+8593174497065
+3874573773457
+9554334765726
+5321793496975
+7636368647650
+5292215229047
+4887944787446
+5829560317557
+6864473761178
+4950101244867
+5454689715649
+8707852992527
+5516846173070
+6742032351968
+6573364826763
+5965006539051
+5857358566232
+6087447948261
+11208203882878
+8954906526772
+8614394133610
+6972121733997
+8047649205407
+6681012799582
+9166789002504
+8824675018324
+17781183136114
+9838046032313
+10180160016493
+10404790960516
+10242316473914
+10342634503095
+10466947417937
+12197858972652
+14812265093004
+10971535888719
+11374204739302
+11481852712121
+11822365105283
+11944806514493
+17214438207911
+12538371365814
+12768460747843
+13653134533579
+20709263891851
+21554364755795
+17085803760098
+14728662004989
+21724169186035
+18662721050637
+19004835034817
+20018206048806
+20080362506227
+24908822021482
+20809581921032
+20584950977009
+21314170391814
+21438483306656
+39472302971669
+32291434633153
+22345740628021
+42309120163044
+23304217817404
+23767171619776
+36219273242728
+38743083556864
+25306832113657
+26421595281422
+28381796538568
+35538243926021
+31814465765087
+33391383055626
+45387194619884
+39023041083623
+38680927099443
+39085197541044
+45649958445425
+78108238624667
+41394532898041
+42023434283665
+41899121368823
+42752653698470
+87044491343466
+70495392864530
+47071389437180
+59986444862504
+49725813098826
+48611049931061
+59812978337048
+51728427395079
+67352709691108
+75032645212483
+54803391819990
+67062723638011
+81433580797913
+88465922335221
+75414817339291
+77766124640487
+84735155986469
+80984318909867
+80479730439085

+ 20 - 0
puzzleInput/day9-2.txt

@@ -0,0 +1,20 @@
+35
+20
+15
+25
+47
+40
+62
+55
+65
+95
+102
+117
+150
+182
+127
+219
+299
+277
+309
+576

+ 57 - 0
src/main/kotlin/de/doriansnowball/adventofcode/Day09.kt

@@ -0,0 +1,57 @@
+package de.doriansnowball.adventofcode
+
+import java.io.File
+
+fun main() {
+    solvePuzzle9()
+}
+
+val preamble = 25
+fun solvePuzzle9() {
+    val input = mutableListOf<Long>()
+    File("puzzleInput/day9-1.txt").forEachLine { input.add(it.toLong()) }
+
+    var invalid: Long = 0L
+
+    for ((i,target) in input.withIndex()) {
+        if (i < preamble)
+            continue
+        if (!checkValidXMAS(input, i, target)) {
+            println("Found invalid number $target at position $i")
+            invalid = target
+            break
+        }
+    }
+
+    println(findWeakness(invalid, input))
+
+}
+
+private fun checkValidXMAS(input: MutableList<Long>, i: Int, target: Long): Boolean {
+    for (x in input.subList((i - preamble), i)) {
+        for (z in input.subList((i - preamble), i)) {
+            if (x != z && x + z == target) {
+                return true
+            }
+        }
+    }
+    return false
+}
+
+private fun findWeakness(invalid: Long, input: MutableList<Long>): Long {
+    val range = mutableListOf<Long>()
+
+    val maxRange = 50
+    for (width in 2..maxRange) {
+        for ((i, x) in input.withIndex()) {
+            if (i>input.size-width)
+                break
+            if (input.subList(i,i+width).sum() == invalid) {
+                range.addAll(input.subList(i,i+width))
+                return range.minOrNull()!! + range.maxOrNull()!!
+            }
+        }
+    }
+
+    throw IllegalArgumentException("Can't find range with given inputs")
+}

+ 32 - 0
src/main/kotlin/de/doriansnowball/adventofcode/Day10.kt

@@ -0,0 +1,32 @@
+package de.doriansnowball.adventofcode
+
+import java.io.File
+
+fun main() {
+    solvePuzzle10()
+}
+
+private fun solvePuzzle10() {
+    val adapters = mutableListOf<Int>()
+    File("puzzleInput/day10-1.txt").forEachLine { adapters.add(it.toInt()) }
+
+    adapters.sort()
+
+    var differences = mutableMapOf<Int, Int>()
+    val device = adapters.maxOrNull()!! + 3
+
+    var last = 0
+    for ((i, adapter) in adapters.withIndex()) {
+        differences[adapter-last] = differences.getOrDefault(adapter-last, 0)+1
+        last = adapter
+    }
+
+    differences[3] = differences[3]!! + 1
+
+    println(differences[1]!! * differences[3]!!)
+
+//    difference += 3
+
+//    println(difference)
+
+}

+ 90 - 0
src/main/kotlin/de/doriansnowball/adventofcode/Day11.kt

@@ -0,0 +1,90 @@
+package de.doriansnowball.adventofcode
+
+import java.io.File
+
+fun main() {
+    solvePuzzle11()
+}
+
+private fun solvePuzzle11() {
+    val lines = File("puzzleInput/day11-1.txt").readLines()
+
+    val rowSize = lines.size
+    val columnSize = lines[0].length
+
+    var map = Array(rowSize) { CharArray(columnSize) }
+    for ((i, line) in lines.withIndex()) {
+        map[i] = line.toCharArray()
+    }
+
+//    map.forEach { println(it) }
+
+    var unstable = true
+    var iterations = 0
+    while (unstable) {
+        if (iterations>10) {
+            break
+        }
+//        println("New iteration")
+        var newMap = map.copy()
+
+        for ((x, row) in map.withIndex()) {
+            for ((y, char) in row.withIndex()) {
+                newMap[x][y] = applyRules(x, y, char, map)
+            }
+        }
+
+        val equal = map.contentDeepEquals(newMap)
+        unstable = !equal
+//        iterations++
+//        unstable = !map.contentDeepEquals(newMap)
+        map = newMap
+
+//        println("Neue Map")
+//        newMap.forEach { println(it) }
+    }
+
+    val count = map.map { chars -> chars.count { it == '#' } }.sum()
+    println("Seats occupied at the end: $count")
+}
+
+fun Array<CharArray>.copy() = map { it.clone() }.toTypedArray()
+//    var newMap = Array(rowSize) { CharArray(columnSize) }
+//    for ((i,chars) in map.withIndex()) {
+//        newMap[i] = chars.copyOf()
+//    }
+
+private fun applyRules(x: Int, y: Int, char: Char, map: Array<CharArray>): Char {
+    if (char == 'L') {
+        // rule 1
+        if (countAdjacents(x, y, map) == 0) {
+            return '#'
+        }
+    }
+
+    if (char == '#') {
+        // rule 2
+        if (countAdjacents(x, y, map) >= 4) {
+            return 'L'
+        }
+    }
+
+    return char
+}
+
+private fun countAdjacents(x: Int, y: Int, map: Array<CharArray>): Int {
+    var adjacents = 0
+    for (i in (x - 1)..(x + 1)) {
+        if (i < 0 || i >= map.size)
+            continue
+        for (j in (y - 1)..(y + 1)) {
+            if (i == x && j == y)
+                continue
+            if (j < 0 || j >= map[0].size)
+                continue
+            if (map[i][j] == '#')
+                adjacents++
+        }
+    }
+    return adjacents
+}

+ 50 - 0
src/main/kotlin/de/doriansnowball/adventofcode/Day12.kt

@@ -0,0 +1,50 @@
+package de.doriansnowball.adventofcode
+
+import java.io.File
+import kotlin.math.abs
+
+fun main() {
+    solvePuzzle12()
+}
+
+private fun solvePuzzle12() {
+    val instructions = mutableListOf<NavOperation>()
+    File("puzzleInput/Day12-2.txt").forEachLine {
+        val type = NavOperationType.valueOf(it.first().toString())
+        val value = it.drop(1).toInt()
+        instructions.add(NavOperation(value, type))
+    }
+
+    instructions.forEach { move(it) }
+
+    println("Manhatten distance: ${abs(east) + abs(north)}")
+}
+
+private var east = 0
+private var north = 0
+private var facing = 0
+
+private fun move(navOperation: NavOperation) {
+    when (navOperation.type) {
+        NavOperationType.N -> north += navOperation.value
+        NavOperationType.S -> north -= navOperation.value
+        NavOperationType.E -> east += navOperation.value
+        NavOperationType.W -> east -= navOperation.value
+        NavOperationType.L -> facing = Math.floorMod(facing + navOperation.value, 360)
+        NavOperationType.R -> facing = Math.floorMod(facing - navOperation.value, 360 )
+        NavOperationType.F -> {
+            when (facing) {
+                in 0 until 90 -> east += navOperation.value
+                in 90 until 180 -> north += navOperation.value
+                in 180 until 270 -> east -= navOperation.value
+                in 270 until 360 -> north -= navOperation.value
+            }
+        }
+    }
+}
+
+private enum class NavOperationType {
+    N, S, E, W, L, R, F
+}
+
+private class NavOperation(var value: Int, var type: NavOperationType)