advent-of-code/2015/day03/day03.py

35 lines
879 B
Python
Raw Normal View History

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())