day 8
This commit is contained in:
parent
bc64ff468d
commit
aa07b45ba7
@ -2,4 +2,4 @@ def printSolution(day, part, solution, test=False):
|
||||
if test:
|
||||
print("(TEST) ", end="")
|
||||
|
||||
print(f"Solution to day {day}, part {part}: {solution}")
|
||||
print(f"Solution to day %s, part %s: %s" % (day, part, solution))
|
||||
|
||||
57
day08.py
Normal file
57
day08.py
Normal file
@ -0,0 +1,57 @@
|
||||
import aoclib
|
||||
|
||||
DAY = 8
|
||||
TEST_SOLUTION_PART1 = 5
|
||||
TEST_SOLUTION_PART2 = 8
|
||||
|
||||
|
||||
def runCode(lines, infinite_returns_value=False):
|
||||
accumulator = 0
|
||||
line_pointer = 0
|
||||
lines_executed = set()
|
||||
last_line = len(lines)
|
||||
while line_pointer < last_line:
|
||||
if line_pointer in lines_executed:
|
||||
if infinite_returns_value:
|
||||
return accumulator
|
||||
else:
|
||||
return None
|
||||
|
||||
lines_executed.add(line_pointer)
|
||||
command, param = lines[line_pointer].split()
|
||||
param = int(param)
|
||||
if command == 'nop':
|
||||
pass
|
||||
line_pointer += 1
|
||||
elif command == 'acc':
|
||||
accumulator = accumulator + param
|
||||
line_pointer += 1
|
||||
elif command == 'jmp':
|
||||
line_pointer = line_pointer + param
|
||||
|
||||
return accumulator
|
||||
|
||||
|
||||
def part1(test_mode=False):
|
||||
my_input = aoclib.getInputAsArray(day=DAY, test=test_mode)
|
||||
return runCode(my_input, infinite_returns_value=True)
|
||||
|
||||
|
||||
def part2(test_mode=False):
|
||||
my_input = aoclib.getInputAsArray(day=DAY, test=test_mode)
|
||||
counter = -1
|
||||
for check_command in my_input:
|
||||
counter += 1
|
||||
if not check_command.startswith('nop') and not check_command.startswith('jmp'):
|
||||
continue
|
||||
|
||||
check_code = my_input.copy()
|
||||
if check_command.startswith('nop'):
|
||||
check_code[counter] = check_code[counter].replace('nop', 'jmp')
|
||||
|
||||
if check_command.startswith('jmp'):
|
||||
check_code[counter] = check_code[counter].replace('jmp', 'nop')
|
||||
|
||||
check_answer = runCode(check_code)
|
||||
if check_answer is not None:
|
||||
return check_answer
|
||||
636
inputs/8
Normal file
636
inputs/8
Normal file
@ -0,0 +1,636 @@
|
||||
jmp +1
|
||||
acc -15
|
||||
acc +14
|
||||
acc +18
|
||||
jmp +443
|
||||
jmp +286
|
||||
acc +27
|
||||
jmp +522
|
||||
jmp +1
|
||||
acc -19
|
||||
acc +22
|
||||
acc +37
|
||||
jmp +111
|
||||
acc +28
|
||||
acc +43
|
||||
acc +18
|
||||
nop +597
|
||||
jmp +479
|
||||
jmp +604
|
||||
jmp +499
|
||||
acc +0
|
||||
acc +22
|
||||
acc +13
|
||||
jmp +566
|
||||
acc -12
|
||||
acc +0
|
||||
nop +153
|
||||
jmp +173
|
||||
jmp +192
|
||||
jmp +292
|
||||
acc +36
|
||||
acc +7
|
||||
jmp +440
|
||||
acc -17
|
||||
acc +40
|
||||
acc +24
|
||||
acc -7
|
||||
jmp +519
|
||||
nop +16
|
||||
acc +15
|
||||
acc +42
|
||||
jmp +445
|
||||
jmp +350
|
||||
acc +42
|
||||
acc +12
|
||||
acc +2
|
||||
jmp +133
|
||||
acc +12
|
||||
acc +3
|
||||
acc +27
|
||||
jmp +186
|
||||
acc +25
|
||||
acc +46
|
||||
jmp +285
|
||||
acc +32
|
||||
acc -11
|
||||
acc -6
|
||||
jmp +565
|
||||
nop +215
|
||||
acc +1
|
||||
acc +35
|
||||
jmp +1
|
||||
jmp +502
|
||||
acc +27
|
||||
acc +19
|
||||
acc -8
|
||||
acc -8
|
||||
jmp +531
|
||||
jmp -21
|
||||
nop +292
|
||||
acc +8
|
||||
acc -13
|
||||
jmp +26
|
||||
acc +1
|
||||
acc +45
|
||||
nop -42
|
||||
jmp +323
|
||||
jmp +39
|
||||
jmp +336
|
||||
acc +19
|
||||
jmp -51
|
||||
acc +45
|
||||
acc +26
|
||||
jmp +278
|
||||
jmp +6
|
||||
acc +40
|
||||
nop +271
|
||||
acc -10
|
||||
nop -4
|
||||
jmp +272
|
||||
nop -61
|
||||
acc +4
|
||||
acc -14
|
||||
acc +27
|
||||
jmp -70
|
||||
acc -9
|
||||
acc +29
|
||||
jmp +416
|
||||
acc +25
|
||||
acc +45
|
||||
jmp +19
|
||||
jmp +39
|
||||
acc -19
|
||||
acc +7
|
||||
jmp +248
|
||||
acc +11
|
||||
acc +36
|
||||
jmp +515
|
||||
acc +45
|
||||
acc +49
|
||||
jmp +329
|
||||
acc +30
|
||||
acc +31
|
||||
acc +28
|
||||
acc +26
|
||||
jmp +8
|
||||
jmp +283
|
||||
acc +32
|
||||
jmp +127
|
||||
acc +4
|
||||
acc +20
|
||||
jmp +92
|
||||
jmp +50
|
||||
jmp +133
|
||||
acc +5
|
||||
acc +8
|
||||
jmp +313
|
||||
acc +38
|
||||
acc +34
|
||||
jmp +395
|
||||
acc +14
|
||||
acc +29
|
||||
jmp +392
|
||||
nop +246
|
||||
jmp +374
|
||||
nop +429
|
||||
nop +388
|
||||
acc +3
|
||||
acc +0
|
||||
jmp +432
|
||||
acc -1
|
||||
acc +35
|
||||
acc +35
|
||||
jmp +148
|
||||
acc +8
|
||||
acc +11
|
||||
acc +12
|
||||
acc -10
|
||||
jmp +434
|
||||
acc -19
|
||||
jmp +330
|
||||
nop +329
|
||||
acc +30
|
||||
jmp +239
|
||||
acc -6
|
||||
jmp -136
|
||||
jmp +418
|
||||
nop +385
|
||||
jmp +1
|
||||
acc +34
|
||||
acc +9
|
||||
jmp +410
|
||||
nop -13
|
||||
acc +31
|
||||
acc +15
|
||||
acc +37
|
||||
jmp -142
|
||||
jmp +109
|
||||
acc -16
|
||||
nop +405
|
||||
nop +343
|
||||
jmp +8
|
||||
acc +44
|
||||
acc -15
|
||||
acc +7
|
||||
acc +9
|
||||
jmp +185
|
||||
acc +6
|
||||
jmp +35
|
||||
nop -25
|
||||
jmp +93
|
||||
acc +22
|
||||
acc -17
|
||||
acc +15
|
||||
acc +39
|
||||
jmp +41
|
||||
nop -123
|
||||
acc +15
|
||||
acc +6
|
||||
jmp -35
|
||||
acc +48
|
||||
jmp +422
|
||||
acc -7
|
||||
nop +67
|
||||
nop +66
|
||||
acc +48
|
||||
jmp -29
|
||||
acc -11
|
||||
acc +16
|
||||
jmp +92
|
||||
acc +45
|
||||
jmp +92
|
||||
jmp +212
|
||||
acc -3
|
||||
acc -18
|
||||
nop -186
|
||||
nop +7
|
||||
jmp -28
|
||||
nop +292
|
||||
acc +7
|
||||
nop -120
|
||||
acc +46
|
||||
jmp +48
|
||||
acc -3
|
||||
acc -16
|
||||
acc +50
|
||||
jmp -44
|
||||
acc -2
|
||||
acc -11
|
||||
jmp +236
|
||||
jmp +344
|
||||
acc +33
|
||||
acc +44
|
||||
acc +39
|
||||
nop -45
|
||||
jmp -53
|
||||
acc -11
|
||||
nop +380
|
||||
acc +35
|
||||
jmp +113
|
||||
nop +203
|
||||
acc +40
|
||||
jmp +167
|
||||
acc +44
|
||||
jmp +394
|
||||
jmp +229
|
||||
jmp -167
|
||||
jmp -204
|
||||
acc +21
|
||||
acc +49
|
||||
jmp +25
|
||||
acc -19
|
||||
acc -17
|
||||
acc +44
|
||||
jmp -11
|
||||
acc +40
|
||||
acc +12
|
||||
jmp +253
|
||||
acc +21
|
||||
jmp +349
|
||||
jmp +285
|
||||
acc +0
|
||||
nop +261
|
||||
acc +15
|
||||
acc +38
|
||||
jmp +10
|
||||
acc +27
|
||||
jmp +1
|
||||
jmp +373
|
||||
jmp -151
|
||||
acc +6
|
||||
jmp -48
|
||||
acc +14
|
||||
acc -8
|
||||
jmp -61
|
||||
acc +8
|
||||
acc +20
|
||||
jmp +1
|
||||
jmp +1
|
||||
jmp +208
|
||||
acc -18
|
||||
acc +32
|
||||
jmp +94
|
||||
jmp +262
|
||||
acc +0
|
||||
jmp -156
|
||||
nop +188
|
||||
nop +312
|
||||
acc +21
|
||||
acc +6
|
||||
jmp -123
|
||||
acc +47
|
||||
jmp +316
|
||||
acc +25
|
||||
nop +290
|
||||
jmp +62
|
||||
acc -7
|
||||
acc +36
|
||||
nop +212
|
||||
acc +14
|
||||
jmp +332
|
||||
jmp +291
|
||||
jmp +226
|
||||
acc +30
|
||||
jmp -161
|
||||
acc +39
|
||||
acc +38
|
||||
jmp +203
|
||||
nop +63
|
||||
nop -6
|
||||
acc -15
|
||||
nop -56
|
||||
jmp +72
|
||||
acc +1
|
||||
acc +34
|
||||
acc +22
|
||||
acc +19
|
||||
jmp -135
|
||||
acc +27
|
||||
jmp -303
|
||||
acc +1
|
||||
acc +48
|
||||
acc -19
|
||||
jmp +142
|
||||
acc +50
|
||||
jmp +298
|
||||
acc +43
|
||||
acc +0
|
||||
acc +50
|
||||
acc +12
|
||||
jmp +137
|
||||
acc +41
|
||||
nop +252
|
||||
jmp -310
|
||||
acc +13
|
||||
acc +34
|
||||
acc -15
|
||||
acc +43
|
||||
jmp +236
|
||||
acc +5
|
||||
acc -8
|
||||
acc +25
|
||||
acc +45
|
||||
jmp +153
|
||||
acc -12
|
||||
acc +31
|
||||
acc -1
|
||||
jmp +120
|
||||
jmp +236
|
||||
acc +38
|
||||
nop -238
|
||||
jmp -328
|
||||
jmp +81
|
||||
acc +48
|
||||
acc +15
|
||||
acc -9
|
||||
jmp -73
|
||||
nop -49
|
||||
jmp -271
|
||||
acc -17
|
||||
acc -17
|
||||
jmp +106
|
||||
nop +212
|
||||
jmp -290
|
||||
acc +36
|
||||
nop +109
|
||||
jmp +186
|
||||
jmp -310
|
||||
acc +4
|
||||
acc +16
|
||||
jmp +117
|
||||
jmp +1
|
||||
acc +10
|
||||
jmp +20
|
||||
acc +12
|
||||
jmp -311
|
||||
acc +12
|
||||
acc +30
|
||||
nop +182
|
||||
jmp -315
|
||||
acc +25
|
||||
acc +12
|
||||
acc +30
|
||||
jmp +50
|
||||
acc -19
|
||||
jmp -333
|
||||
acc +30
|
||||
nop +87
|
||||
jmp -199
|
||||
acc +8
|
||||
jmp +112
|
||||
acc -8
|
||||
jmp -313
|
||||
acc +7
|
||||
acc +32
|
||||
jmp +1
|
||||
jmp +230
|
||||
acc +25
|
||||
acc +45
|
||||
acc +20
|
||||
acc +0
|
||||
jmp -307
|
||||
acc +30
|
||||
nop -253
|
||||
acc +7
|
||||
acc +39
|
||||
jmp -113
|
||||
acc -12
|
||||
jmp +209
|
||||
acc +42
|
||||
acc +17
|
||||
acc -19
|
||||
acc +24
|
||||
jmp -170
|
||||
acc +30
|
||||
acc +9
|
||||
acc -1
|
||||
jmp -328
|
||||
acc +19
|
||||
acc +45
|
||||
jmp +132
|
||||
nop -244
|
||||
nop +35
|
||||
jmp +34
|
||||
acc -10
|
||||
acc +26
|
||||
acc +35
|
||||
nop -238
|
||||
jmp +54
|
||||
acc +15
|
||||
nop -378
|
||||
acc +42
|
||||
jmp -43
|
||||
acc -9
|
||||
acc -5
|
||||
acc -11
|
||||
nop -307
|
||||
jmp -129
|
||||
nop -202
|
||||
acc -9
|
||||
nop -376
|
||||
acc +11
|
||||
jmp -75
|
||||
jmp +14
|
||||
acc -1
|
||||
acc +32
|
||||
acc -14
|
||||
acc +16
|
||||
jmp +39
|
||||
acc +42
|
||||
acc +32
|
||||
jmp -133
|
||||
acc +1
|
||||
acc +17
|
||||
nop +85
|
||||
acc +35
|
||||
jmp +83
|
||||
acc +27
|
||||
acc +0
|
||||
acc -12
|
||||
jmp -93
|
||||
acc +48
|
||||
acc +35
|
||||
nop +154
|
||||
jmp -287
|
||||
jmp -347
|
||||
jmp -348
|
||||
acc +18
|
||||
jmp -374
|
||||
acc -15
|
||||
jmp +36
|
||||
jmp -123
|
||||
acc -11
|
||||
jmp +55
|
||||
acc +19
|
||||
acc +23
|
||||
jmp -339
|
||||
nop +5
|
||||
acc +44
|
||||
acc +2
|
||||
jmp +1
|
||||
jmp -417
|
||||
acc +23
|
||||
jmp -253
|
||||
acc -9
|
||||
acc -3
|
||||
jmp -138
|
||||
jmp -227
|
||||
acc +12
|
||||
jmp -437
|
||||
acc +47
|
||||
acc +19
|
||||
acc -6
|
||||
jmp -245
|
||||
acc +2
|
||||
jmp -328
|
||||
acc -14
|
||||
acc +25
|
||||
acc +4
|
||||
acc -2
|
||||
jmp -411
|
||||
jmp -351
|
||||
jmp -459
|
||||
acc +3
|
||||
acc +48
|
||||
jmp -134
|
||||
nop +54
|
||||
acc -14
|
||||
jmp -298
|
||||
jmp -401
|
||||
acc -14
|
||||
acc +25
|
||||
nop -55
|
||||
acc -10
|
||||
jmp -312
|
||||
acc -7
|
||||
acc +45
|
||||
jmp -74
|
||||
acc +30
|
||||
jmp -462
|
||||
acc +5
|
||||
acc -8
|
||||
jmp -355
|
||||
acc +9
|
||||
acc +44
|
||||
acc +44
|
||||
jmp -150
|
||||
jmp -484
|
||||
acc +14
|
||||
acc +19
|
||||
acc -6
|
||||
jmp -474
|
||||
acc -18
|
||||
jmp -166
|
||||
jmp -264
|
||||
acc -15
|
||||
acc +17
|
||||
acc +29
|
||||
jmp -149
|
||||
nop -273
|
||||
acc +31
|
||||
acc +0
|
||||
acc -2
|
||||
jmp -410
|
||||
jmp -411
|
||||
acc +47
|
||||
acc -6
|
||||
nop -287
|
||||
jmp -436
|
||||
acc +4
|
||||
nop +88
|
||||
jmp -158
|
||||
acc +32
|
||||
jmp +1
|
||||
acc -15
|
||||
jmp -319
|
||||
acc -6
|
||||
acc -18
|
||||
acc +49
|
||||
jmp -256
|
||||
acc -18
|
||||
acc +31
|
||||
acc +27
|
||||
acc +27
|
||||
jmp -351
|
||||
jmp +58
|
||||
acc +12
|
||||
jmp +1
|
||||
acc +32
|
||||
nop -151
|
||||
jmp -411
|
||||
acc +19
|
||||
acc +7
|
||||
jmp -287
|
||||
acc +30
|
||||
jmp -496
|
||||
acc -11
|
||||
acc +5
|
||||
acc +42
|
||||
acc +25
|
||||
jmp -249
|
||||
acc -1
|
||||
jmp -243
|
||||
jmp -190
|
||||
acc +32
|
||||
acc +32
|
||||
acc +14
|
||||
jmp +12
|
||||
acc +5
|
||||
acc +30
|
||||
acc +34
|
||||
jmp -46
|
||||
acc -13
|
||||
acc +5
|
||||
acc +45
|
||||
jmp -271
|
||||
acc +29
|
||||
acc +37
|
||||
jmp -323
|
||||
nop -18
|
||||
acc -2
|
||||
acc +21
|
||||
acc -12
|
||||
jmp -453
|
||||
acc -14
|
||||
acc +19
|
||||
nop -173
|
||||
jmp -411
|
||||
acc +24
|
||||
acc -7
|
||||
nop -136
|
||||
acc +6
|
||||
jmp -357
|
||||
acc -1
|
||||
acc -1
|
||||
acc +32
|
||||
jmp -264
|
||||
acc +26
|
||||
jmp -175
|
||||
acc +10
|
||||
acc +35
|
||||
nop -361
|
||||
jmp -493
|
||||
acc +14
|
||||
jmp -206
|
||||
jmp -138
|
||||
acc -1
|
||||
jmp -156
|
||||
acc +3
|
||||
acc +11
|
||||
acc -2
|
||||
jmp -213
|
||||
acc +35
|
||||
acc -13
|
||||
acc +47
|
||||
acc +45
|
||||
jmp -376
|
||||
jmp -543
|
||||
jmp -479
|
||||
acc +29
|
||||
jmp -532
|
||||
acc +28
|
||||
acc +47
|
||||
acc -11
|
||||
acc -14
|
||||
jmp +1
|
||||
9
inputs/8_test
Normal file
9
inputs/8_test
Normal file
@ -0,0 +1,9 @@
|
||||
nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6
|
||||
Loading…
Reference in New Issue
Block a user