Steffen Burkowitz 4 jaren geleden
bovenliggende
commit
f8c05bc240

+ 647 - 0
puzzleInput/day8-1.txt

@@ -0,0 +1,647 @@
+acc +15
+jmp +461
+acc +6
+nop +445
+jmp +324
+jmp +253
+acc -4
+acc +22
+acc +11
+jmp +471
+jmp +145
+acc +19
+jmp -7
+jmp +431
+nop +66
+acc +48
+jmp +409
+jmp +514
+jmp +1
+acc +32
+jmp +552
+acc +21
+jmp +317
+nop +488
+jmp +500
+jmp +214
+acc +41
+jmp +17
+acc +19
+jmp +1
+acc +28
+jmp +74
+acc +37
+acc +46
+acc -10
+jmp +455
+acc +33
+jmp +585
+acc -13
+acc +18
+jmp +19
+jmp +601
+acc +30
+jmp +272
+acc +18
+acc +50
+acc +1
+acc +29
+jmp +50
+nop +573
+jmp +562
+nop +274
+jmp +1
+acc +6
+jmp +1
+jmp +64
+jmp +1
+acc +37
+jmp +161
+nop +549
+acc +21
+jmp +1
+nop +325
+jmp +331
+acc +0
+acc +25
+jmp +431
+nop +349
+jmp +45
+acc +37
+acc +9
+jmp +354
+jmp +132
+jmp +307
+jmp +1
+nop +465
+jmp +386
+acc +13
+acc +20
+jmp -20
+acc -15
+nop +158
+jmp +415
+acc +33
+acc +40
+acc +38
+acc -2
+jmp +81
+acc +44
+acc +9
+acc +15
+nop +139
+jmp -18
+nop +187
+acc +47
+acc +45
+acc +40
+jmp +456
+acc +48
+jmp +1
+jmp -75
+acc +11
+acc -13
+nop +222
+jmp +202
+acc +38
+acc +31
+acc -11
+acc +1
+jmp +431
+acc +37
+nop +195
+jmp +118
+acc -8
+jmp +1
+jmp +154
+acc +7
+acc +13
+jmp +43
+jmp +507
+acc -2
+acc +11
+jmp +465
+acc -12
+nop -103
+jmp +50
+acc +2
+nop +4
+acc +46
+acc +17
+jmp +100
+nop +149
+jmp +397
+nop -28
+jmp +236
+acc +0
+nop +465
+acc +19
+acc -5
+jmp +91
+jmp +118
+acc -3
+nop +176
+acc +8
+jmp +24
+jmp +235
+acc -7
+nop -1
+nop +347
+acc +33
+jmp +165
+acc -18
+acc +9
+acc -8
+jmp +179
+acc -3
+acc +40
+jmp +1
+acc +5
+jmp +475
+jmp +70
+acc +50
+acc -1
+acc -11
+acc +43
+jmp +283
+nop +114
+jmp +161
+acc -19
+acc +50
+acc +47
+acc +49
+jmp +381
+jmp +1
+jmp -94
+nop +373
+acc +26
+acc +7
+jmp +41
+acc -7
+jmp +264
+nop -40
+acc +23
+jmp -60
+acc +15
+acc +19
+acc +39
+acc -16
+jmp +283
+acc +4
+jmp +258
+acc +0
+acc +38
+acc -6
+jmp +32
+acc +33
+jmp +1
+acc -4
+acc +17
+jmp +149
+acc -17
+acc +39
+nop +75
+jmp -136
+acc +6
+acc +10
+jmp +1
+acc +9
+jmp +390
+jmp +363
+acc +32
+jmp +95
+jmp -71
+acc +12
+jmp +86
+acc +49
+acc +2
+acc +0
+jmp +139
+nop +363
+acc +21
+jmp +366
+jmp +1
+acc +16
+acc -13
+jmp +55
+jmp -159
+acc +46
+acc +50
+jmp +266
+acc +2
+jmp -180
+jmp -181
+acc +41
+acc -3
+nop -176
+jmp +121
+acc +23
+jmp +281
+acc +5
+acc +14
+acc -8
+jmp +128
+jmp +281
+nop +81
+jmp +1
+acc +36
+acc +34
+jmp -176
+acc +8
+jmp +309
+acc +11
+nop -77
+jmp -40
+acc +0
+acc +8
+acc +14
+jmp +296
+nop +197
+nop -124
+acc +38
+acc +9
+jmp +310
+jmp -183
+jmp +353
+acc +28
+acc -18
+nop +120
+jmp -217
+acc +49
+acc +38
+jmp -243
+nop -68
+acc +9
+acc +15
+nop +43
+jmp -46
+acc -4
+jmp +262
+jmp +176
+nop -139
+acc +38
+acc +35
+acc -8
+jmp -225
+acc +37
+acc +49
+acc +42
+nop +278
+jmp +264
+acc -11
+nop +291
+acc +21
+nop -221
+jmp +80
+acc +15
+acc +13
+acc +2
+nop -40
+jmp +309
+acc -18
+acc -5
+acc +24
+jmp -70
+acc +12
+jmp -261
+acc +4
+acc -2
+acc +3
+jmp +1
+jmp +302
+acc -7
+jmp +1
+acc +39
+jmp +73
+jmp +18
+acc +3
+jmp +277
+acc +4
+nop +125
+nop -284
+acc +41
+jmp -312
+acc +13
+jmp -183
+nop -35
+jmp -137
+jmp -76
+acc +1
+acc +31
+acc +39
+jmp +56
+jmp +290
+jmp +1
+acc +12
+nop +71
+acc +43
+jmp -296
+jmp +68
+acc -14
+acc +35
+nop -290
+jmp -24
+acc +39
+acc -8
+nop +110
+jmp +1
+jmp +78
+acc +11
+acc +9
+acc -11
+acc +50
+jmp +167
+acc +50
+acc +19
+acc +0
+jmp -221
+acc -4
+acc -6
+nop +11
+acc +49
+jmp -348
+nop +197
+acc +6
+jmp -196
+nop -155
+jmp -76
+acc +50
+acc -8
+jmp -89
+acc +9
+jmp +255
+acc +25
+jmp +199
+jmp -35
+acc +46
+acc +25
+jmp +1
+acc +32
+jmp -31
+acc -3
+acc -5
+jmp +73
+acc +7
+acc +22
+acc -15
+jmp +145
+nop -97
+acc +47
+acc +22
+jmp -110
+acc +44
+acc +4
+jmp -383
+acc +34
+jmp +1
+jmp +16
+nop -128
+acc +43
+jmp -34
+nop +95
+acc +3
+jmp +4
+acc +13
+acc -2
+jmp -90
+acc +39
+jmp +187
+acc +24
+acc +23
+acc +42
+jmp -11
+jmp -281
+jmp +1
+acc +25
+jmp -157
+acc +3
+acc -3
+nop -24
+acc -13
+jmp -46
+acc +10
+acc +16
+nop -7
+jmp -289
+nop -408
+acc -5
+acc +23
+nop +91
+jmp -234
+acc +0
+acc +4
+acc +15
+acc -15
+jmp -367
+acc +32
+acc -9
+acc +13
+jmp -194
+acc +38
+nop +126
+acc +1
+nop +124
+jmp -275
+acc -14
+acc +26
+jmp +55
+jmp -388
+acc +3
+acc +8
+acc +31
+acc +34
+jmp -372
+acc +45
+jmp -115
+acc -6
+acc +47
+acc -17
+acc +29
+jmp -438
+acc +33
+jmp -113
+jmp -301
+jmp -396
+acc +46
+jmp -284
+acc -14
+acc +11
+acc +20
+nop -356
+jmp -445
+acc +20
+acc -6
+acc -8
+jmp +134
+nop +54
+acc +33
+jmp +1
+acc +3
+jmp +108
+acc +14
+nop +67
+nop -66
+acc +45
+jmp +117
+acc +45
+acc +42
+acc +25
+acc -18
+jmp -354
+acc +8
+jmp -240
+nop -373
+acc -8
+jmp +72
+jmp -95
+jmp -350
+jmp -62
+acc +6
+acc -18
+jmp +108
+acc +14
+acc +11
+nop -164
+acc +4
+jmp +6
+acc +24
+acc +11
+acc -7
+acc +27
+jmp -171
+acc +23
+acc +36
+acc +20
+acc +42
+jmp -51
+acc +28
+acc +10
+jmp -218
+nop +63
+jmp -294
+acc -10
+nop +44
+jmp +43
+jmp -444
+acc +20
+acc +39
+acc +29
+jmp -507
+jmp -265
+jmp -471
+nop +17
+acc +39
+acc +4
+jmp -54
+acc +1
+nop -448
+acc -18
+acc +3
+jmp -495
+acc +17
+acc +16
+jmp +6
+acc +6
+acc +0
+jmp +1
+acc -15
+jmp -317
+jmp -77
+acc +4
+acc +30
+acc -3
+jmp -187
+acc -11
+nop -189
+nop -488
+jmp -140
+acc +50
+jmp -142
+nop -211
+jmp -166
+acc -12
+acc +7
+acc +32
+acc +40
+jmp -384
+jmp -186
+nop -261
+acc +32
+acc +19
+acc +44
+jmp +16
+acc +15
+acc +30
+nop -476
+acc +9
+jmp -299
+acc -17
+acc -17
+acc -4
+acc +44
+jmp -133
+jmp -58
+acc +21
+acc +4
+acc -19
+jmp -170
+acc +32
+acc -3
+jmp -363
+acc +48
+acc +9
+acc +48
+jmp +5
+acc +30
+acc +40
+jmp -450
+jmp -282
+jmp -388
+acc +12
+jmp -361
+acc -6
+jmp -237
+acc +27
+acc +16
+acc -19
+acc -5
+jmp -145
+acc +38
+jmp -565
+nop -341
+jmp +11
+acc +22
+nop -219
+jmp -597
+acc +33
+jmp -572
+jmp -292
+acc +7
+acc -14
+acc +33
+jmp -432
+acc +47
+jmp -41
+nop -306
+jmp -85
+jmp +1
+nop -215
+acc +30
+acc +9
+jmp -71
+acc +42
+acc +49
+jmp -553
+acc +28
+acc +43
+jmp +1
+jmp -147
+acc +44
+acc +26
+nop -176
+jmp -582
+acc +7
+acc -14
+acc +16
+acc +34
+jmp +1

+ 9 - 0
puzzleInput/day8-2.txt

@@ -0,0 +1,9 @@
+nop +0
+acc +1
+jmp +4
+acc +3
+jmp -3
+acc -99
+acc +1
+jmp -4
+acc +6

+ 0 - 1
src/main/kotlin/de/doriansnowball/adventofcode/Day07.kt

@@ -1,7 +1,6 @@
 package de.doriansnowball.adventofcode
 
 import java.io.File
-import kotlin.time.seconds
 
 fun main() {
     solvePuzzle7()

+ 73 - 0
src/main/kotlin/de/doriansnowball/adventofcode/Day08.kt

@@ -0,0 +1,73 @@
+package de.doriansnowball.adventofcode
+
+import java.io.File
+
+fun main() {
+    solvePuzzle8()
+}
+
+fun solvePuzzle8() {
+    val opLines = File("puzzleInput/day8-1.txt").readLines()
+    val operations = mutableListOf<Operation>()
+
+    for (opString in opLines) {
+        val split = opString.split(' ')
+        operations.add(Operation(OperationType.valueOf(split[0].toUpperCase()), split[1].toInt()))
+    }
+
+    // execute
+    var accumulator: Int = 0
+
+    for (op in operations) {
+        if (op.opType == OperationType.JMP) {
+            op.opType = OperationType.NOP
+            val result = execute(operations, accumulator)
+            if (result != Int.MIN_VALUE) {
+                accumulator = result
+                break
+            }
+            op.opType = OperationType.JMP
+
+        }
+    }
+//    accumulator = execute(operations, accumulator)
+
+    println("Accumulator is $accumulator")
+}
+
+private fun execute(operations: MutableList<Operation>, accumulator: Int): Int {
+    var accumulator1 = accumulator
+    var currentOp = operations[0]
+    var activeLine = 0
+    val executedOps = mutableListOf<Operation>()
+
+    while (true) {
+        when (currentOp.opType) {
+            OperationType.ACC -> {
+                accumulator1 += currentOp.argument
+                activeLine++
+            }
+            OperationType.JMP -> activeLine += currentOp.argument
+            OperationType.NOP -> activeLine++
+        }
+        executedOps.add(currentOp)
+        if (activeLine == operations.size) {
+            println("Finished running program")
+            break
+        }
+
+        currentOp = operations[activeLine]
+
+        if (executedOps.contains(currentOp)) {
+            return Int.MIN_VALUE;
+        }
+    }
+    return accumulator1
+}
+
+class Operation(var opType: OperationType, val argument: Int)
+
+enum class OperationType {
+    ACC, JMP, NOP
+}
+