Files
AdventOfCode/AoC2020/code/AoC10.py
T

59 lines
1015 B
Python

def adapter_chain(adapts):
jolt1 = 0
jolt3 = 1
for i in range(1, len(adapts)):
if adapts[i-1] - adapts[i] == 1:
jolt1 += 1
elif adapts[i-1] - adapts[i] == 3:
jolt3 += 1
else:
print(adapts[i] - adapts[i-1])
return jolt1 * jolt3
def memo(f):
memo = {}
def f2(x):
if x not in memo:
memo[x] = f(x)
return memo[x]
return f2
@memo
def combinations(i):
j = 0
if i == max(nums):
return 1
if i+1 in nums:
j += combinations(i+1)
if i+2 in nums:
j += combinations(i+2)
if i+3 in nums:
j += combinations(i+3)
return j
with open(r"C:\Users\Maya\Desktop\Uni\WS_2021\AoC\input10") as f:
lines = f.readlines()
# convert to integers
nums = [int(line) for line in lines]
nums.append(0)
nums.sort()
nums.reverse()
print(adapter_chain(nums))
nums.append(nums[-1] + 3)
nums.reverse()
print(combinations(0))