Advent of Code 2022 day 10

I’m learning to properly read questions and to not take too many shortcuts. Part 2 has an unexpected and interesting spin. Coded with morale support from Sam.

with open("10.txt") as f:
    lines = f.read().splitlines()

cycles = range(20, 221, 40)

values = [1]
val = 1
for line in lines:
    if line == "noop":
        values.append(val)
    elif line.startswith("addx"):
        values.append(val)
        val += int(line.split(" ")[1])
        values.append(val)

sum = 0
for cycle in cycles:
    print(cycle, values[cycle-1])
    sum += cycle*values[cycle-1]

print(sum)

# part 2
def is_in(x, values):
    if abs(values[x] - x%40) < 2:
        return "#"
    return "."

print(
    "\n".join(
        "".join(is_in(x, values) for x in range(y, y+40))
        for y in range(0, 240, 40)
    )
)