2015 day 3 part 1 & 2

This commit is contained in:
Xevion
2019-11-22 23:21:16 -06:00
parent b54a3a8148
commit bc36899a09
3 changed files with 61 additions and 0 deletions

1
2015/day-3/input Normal file
View File

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
import os
import sys
from collections import defaultdict
PATH = os.path.join(sys.path[0], '..', 'input')
DATA = open(PATH).read()
pos = [0, 0]
def UP():
pos[1] += 1
def DOWN():
pos[1] -= 1
def RIGHT():
pos[0] += 1
def LEFT():
pos[0] -= 1
DIRECTIONS = {'^' : UP, '<' : LEFT, '>' : RIGHT, 'v' : DOWN}
houses = defaultdict(int)
for direction in DATA:
DIRECTIONS[direction]()
houses[f'{pos[0]},{pos[1]}'] += 1
print(len(list(v for v in houses.values() if v >= 1)))

View File

@@ -0,0 +1,32 @@
import os
import sys
from collections import defaultdict
from itertools import cycle
PATH = os.path.join(sys.path[0], '..', 'input')
DATA = '--' + open(PATH).read()
def UP(santa): santa[1] += 1
def DOWN(santa): santa[1] -= 1
def RIGHT(santa): santa[0] += 1
def LEFT(santa): santa[0] -= 1
DIRECTIONS = {'^' : UP, '<' : LEFT, '>' : RIGHT, 'v' : DOWN, '-' : lambda *args : None}
humanSanta = [0, 0]
roboSanta = [0, 0]
houses = defaultdict(int)
cycleIter = cycle(range(2))
for direction in DATA:
alternate = next(cycleIter)
if bool(alternate):
DIRECTIONS[direction](roboSanta)
houses[f'{roboSanta[0]},{roboSanta[1]}'] += 1
else:
DIRECTIONS[direction](humanSanta)
houses[f'{humanSanta[0]},{humanSanta[1]}'] += 1
print(len(list(v for v in houses.values() if v >= 1)))