diff --git a/2019/aoc2019/day17.py b/2019/aoc2019/day17.py new file mode 100644 index 0000000..7c5cdde --- /dev/null +++ b/2019/aoc2019/day17.py @@ -0,0 +1,26 @@ +from typing import TextIO + +from aoc2019.intcode import Computer, read_program + + +def part1(data: TextIO) -> int: + computer = Computer(read_program(data)) + + computer.run() + + output = ''.join(chr(c) for c in computer.output) + + tiles = set() + + for y, line in enumerate(output.splitlines()): + for x, c in enumerate(line): + if c == '#': + tiles.add((x, y)) + + total = 0 + + for x, y in tiles: + if (x - 1, y) in tiles and (x + 1, y) in tiles and (x, y - 1) in tiles and (x, y + 1) in tiles: + total += x * y + + return total