37 lines
954 B
Python
37 lines
954 B
Python
from tools.aoc import AOCDay
|
|
from typing import Any
|
|
|
|
from tools.coordinate import HexCoordinateF, DistanceAlgorithm
|
|
|
|
|
|
class Day(AOCDay):
|
|
inputs = [
|
|
[
|
|
(796, "input11")
|
|
],
|
|
[
|
|
(1585, "input11")
|
|
]
|
|
]
|
|
|
|
def part1(self) -> Any:
|
|
start = HexCoordinateF(0, 0, 0)
|
|
for x in self.getInputAsArraySplit(','):
|
|
start += HexCoordinateF.neighbour_vectors[x]
|
|
return start.getDistanceTo(HexCoordinateF(0, 0, 0), DistanceAlgorithm.MANHATTAN)
|
|
|
|
def part2(self) -> Any:
|
|
init = HexCoordinateF(0, 0, 0)
|
|
start = HexCoordinateF(0, 0, 0)
|
|
max_dist = 0
|
|
for x in self.getInputAsArraySplit(','):
|
|
start += HexCoordinateF.neighbour_vectors[x]
|
|
max_dist = max(max_dist, start.getDistanceTo(init, DistanceAlgorithm.MANHATTAN))
|
|
|
|
return max_dist
|
|
|
|
|
|
if __name__ == '__main__':
|
|
day = Day(2017, 11)
|
|
day.run(verbose=True)
|