day 10
This commit is contained in:
parent
d525bad8a8
commit
3d92204f3e
2 changed files with 359 additions and 0 deletions
217
py-ver/10.py
Normal file
217
py-ver/10.py
Normal file
|
@ -0,0 +1,217 @@
|
||||||
|
with open("10.txt") as f:
|
||||||
|
data = f.read()
|
||||||
|
|
||||||
|
ex_data = """noop
|
||||||
|
addx 3
|
||||||
|
addx -5"""
|
||||||
|
|
||||||
|
ex2_data = """addx 15
|
||||||
|
addx -11
|
||||||
|
addx 6
|
||||||
|
addx -3
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx -8
|
||||||
|
addx 13
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx -35
|
||||||
|
addx 1
|
||||||
|
addx 24
|
||||||
|
addx -19
|
||||||
|
addx 1
|
||||||
|
addx 16
|
||||||
|
addx -11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 21
|
||||||
|
addx -15
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -3
|
||||||
|
addx 9
|
||||||
|
addx 1
|
||||||
|
addx -3
|
||||||
|
addx 8
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -36
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx -13
|
||||||
|
addx 13
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx -33
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 8
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 17
|
||||||
|
addx -9
|
||||||
|
addx 1
|
||||||
|
addx 1
|
||||||
|
addx -3
|
||||||
|
addx 11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -13
|
||||||
|
addx -19
|
||||||
|
addx 1
|
||||||
|
addx 3
|
||||||
|
addx 26
|
||||||
|
addx -30
|
||||||
|
addx 12
|
||||||
|
addx -1
|
||||||
|
addx 3
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -9
|
||||||
|
addx 18
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 9
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
addx 2
|
||||||
|
addx -37
|
||||||
|
addx 1
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 15
|
||||||
|
addx -21
|
||||||
|
addx 22
|
||||||
|
addx -6
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx -10
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 20
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
addx 2
|
||||||
|
addx -6
|
||||||
|
addx -11
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop"""
|
||||||
|
|
||||||
|
def solve1(data):
|
||||||
|
cycle = 1
|
||||||
|
cycle_val = dict()
|
||||||
|
reg = 1
|
||||||
|
|
||||||
|
for line in data.splitlines():
|
||||||
|
parts = line.strip().split(" ")
|
||||||
|
if parts[0] == "noop":
|
||||||
|
cycle_val[cycle] = cycle * reg
|
||||||
|
cycle += 1
|
||||||
|
elif parts[0] == "addx":
|
||||||
|
cycle_val[cycle] = cycle * reg
|
||||||
|
cycle_val[cycle + 1] = (cycle + 1) * reg
|
||||||
|
cycle += 2
|
||||||
|
dx = int(parts[1])
|
||||||
|
reg += dx
|
||||||
|
|
||||||
|
s = 0
|
||||||
|
want = [20, 60, 100, 140, 180, 220]
|
||||||
|
for id in want:
|
||||||
|
s += cycle_val[id]
|
||||||
|
print(s)
|
||||||
|
|
||||||
|
def solve2(data):
|
||||||
|
cycle = 1
|
||||||
|
reg = 1
|
||||||
|
|
||||||
|
crt = dict()
|
||||||
|
for x in range(40):
|
||||||
|
for y in range(6):
|
||||||
|
crt[x, y] = "."
|
||||||
|
|
||||||
|
def topos(n): return (n % 40, n // 40)
|
||||||
|
|
||||||
|
def draw():
|
||||||
|
px = cycle - 1
|
||||||
|
if (px % 40) in [reg - 1, reg, reg + 1]:
|
||||||
|
pos = topos(px)
|
||||||
|
crt[pos] = "#"
|
||||||
|
|
||||||
|
for line in data.splitlines():
|
||||||
|
parts = line.strip().split(" ")
|
||||||
|
if parts[0] == "noop":
|
||||||
|
draw()
|
||||||
|
cycle += 1
|
||||||
|
elif parts[0] == "addx":
|
||||||
|
draw()
|
||||||
|
cycle += 1
|
||||||
|
draw()
|
||||||
|
cycle += 1
|
||||||
|
dx = int(parts[1])
|
||||||
|
reg += dx
|
||||||
|
|
||||||
|
for y in range(6):
|
||||||
|
for x in range(40):
|
||||||
|
print(crt[x, y], end="")
|
||||||
|
print()
|
||||||
|
|
||||||
|
solve1(ex2_data)
|
||||||
|
solve1(data)
|
||||||
|
|
||||||
|
solve2(ex2_data)
|
||||||
|
solve2(data)
|
142
py-ver/10.txt
Normal file
142
py-ver/10.txt
Normal file
|
@ -0,0 +1,142 @@
|
||||||
|
addx 2
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 17
|
||||||
|
noop
|
||||||
|
addx -11
|
||||||
|
addx -1
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -14
|
||||||
|
addx 19
|
||||||
|
noop
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx -20
|
||||||
|
addx 21
|
||||||
|
addx -38
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 22
|
||||||
|
noop
|
||||||
|
addx -17
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx -8
|
||||||
|
addx 9
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 2
|
||||||
|
addx -27
|
||||||
|
addx -10
|
||||||
|
noop
|
||||||
|
addx 37
|
||||||
|
addx -34
|
||||||
|
addx 30
|
||||||
|
addx -29
|
||||||
|
addx 9
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -4
|
||||||
|
addx 9
|
||||||
|
addx -2
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
addx -19
|
||||||
|
addx -17
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx 3
|
||||||
|
addx 11
|
||||||
|
addx 17
|
||||||
|
addx -23
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx 4
|
||||||
|
addx -22
|
||||||
|
noop
|
||||||
|
addx 27
|
||||||
|
addx -32
|
||||||
|
addx 14
|
||||||
|
addx 21
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx -37
|
||||||
|
noop
|
||||||
|
addx 31
|
||||||
|
addx -26
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 9
|
||||||
|
addx -8
|
||||||
|
addx 2
|
||||||
|
addx 11
|
||||||
|
addx -4
|
||||||
|
addx 2
|
||||||
|
addx -15
|
||||||
|
addx -22
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 4
|
||||||
|
addx 19
|
||||||
|
addx -15
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
addx -14
|
||||||
|
addx -13
|
||||||
|
addx 30
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
noop
|
Loading…
Reference in a new issue