2015 day 3.
This commit is contained in:
34
src/holt59/aoc/2015/day3.py
Normal file
34
src/holt59/aoc/2015/day3.py
Normal file
@@ -0,0 +1,34 @@
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
|
||||
line = sys.stdin.read().strip()
|
||||
|
||||
|
||||
def process(directions: str) -> dict[tuple[int, int], int]:
|
||||
counts: dict[tuple[int, int], int] = defaultdict(lambda: 0)
|
||||
counts[0, 0] = 1
|
||||
x, y = (0, 0)
|
||||
|
||||
for c in directions:
|
||||
match c:
|
||||
case ">":
|
||||
x += 1
|
||||
case "<":
|
||||
x -= 1
|
||||
case "^":
|
||||
y -= 1
|
||||
case "v":
|
||||
y += 1
|
||||
case _:
|
||||
raise ValueError()
|
||||
|
||||
counts[x, y] += 1
|
||||
|
||||
return counts
|
||||
|
||||
|
||||
answer_1 = len(process(line))
|
||||
print(f"answer 1 is {answer_1}")
|
||||
|
||||
answer_2 = len(process(line[::2]) | process(line[1::2]))
|
||||
print(f"answer 2 is {answer_2}")
|
Reference in New Issue
Block a user