def read_from_file(file_name): _file = open(file_name, 'r') _read = _file.read() _file.close() return _read directions = read_from_file('inputs/day03.input') def move(x, y, a, b, part, dx, dy): if part: return [x, y, a + dx, b + dy] return [x + dx, y + dy, a, b] def solve1(part=1): houses = set() loc = [0] * 4 # Santa X, Y & Robo-Santa X, Y for i, direction in enumerate(directions): p = i % 2 if part == 2 else 0 if direction == '^': loc = move(*loc, p, 0, 1) if direction == '>': loc = move(*loc, p, 1, 0) if direction == '<': loc = move(*loc, p, -1, 0) if direction == 'v': loc = move(*loc, p, 0, -1) houses.add(tuple(loc[:2])) houses.add(tuple(loc[2:])) return len(houses) def solve2(): return solve1(2) print("Pt1:", solve1()) print("Pt2:", solve2())