Day 18 - Advent of Code 2022
Working solutions for the day 18 puzzles.
Part One
""" day_18_01.py """
# usage: python3 day_18_01.py < input
import sys
def parse(data):
""" generate object """
return {tuple(map(int, i.split(','))) for i in data.splitlines()}
def neighbours(qube):
""" calculate neighbouring qubes """
deltas = [(0, 0, 1), (0, 0, -1), (0, -1, 0), (0, 1, 0),
(1, 0, 0), (-1, 0, 0)]
x, y, z, = qube
return {(x + dx, y + dy, z + dz) for dx, dy, dz in deltas}
lava = parse(sys.stdin.read())
adjacent = 0
for cube in lava:
adjacent += len(neighbours(cube) & lava)
print(6 * len(lava) - adjacent)
Part Two
# standby ...