Files
python-aoc-2020/day12/part2.py
2020-12-12 12:13:37 +01:00

17 lines
430 B
Python

lines = ((x[0], int(x[1:].strip())) for x in open("input.txt"))
pos = 0
direction = 10 + 1j
targets = {"E": 1, "N": 1j, "W": -1, "S": -1j}
for cmd, num in lines:
if cmd in targets:
direction += targets[cmd] * num
elif cmd in "LR":
times = (-1 if cmd == "R" else 1) * num / 90
direction = direction * 1j ** times
else:
pos += direction * num
print(int(abs(pos.real) + abs(pos.imag)))