52 lines
959 B
Python
52 lines
959 B
Python
def part1():
|
|
file = open("input.txt")
|
|
lines = [int(i) for i in file.readlines()]
|
|
|
|
lines = sorted(lines)
|
|
|
|
diffs = {1: 0, 3: 0}
|
|
|
|
diffs[lines[0]] += 1
|
|
lines.append(max(lines) + 3)
|
|
|
|
for i in range(1, len(lines)):
|
|
diff = lines[i] - lines[i - 1]
|
|
diffs[diff] += 1
|
|
|
|
print("Part 1 %d " % (diffs[1] * diffs[3]))
|
|
|
|
|
|
def count_options(og, adapters):
|
|
amount = 0
|
|
adap = list.copy(adapters)
|
|
|
|
if len(adap) == 1:
|
|
return 1
|
|
|
|
while True:
|
|
num = adap.pop(0)
|
|
if num > og + 3:
|
|
break
|
|
amount += count_options(num, adap)
|
|
|
|
return amount
|
|
|
|
|
|
def part2():
|
|
file = open("input.txt")
|
|
|
|
adapters = [0]
|
|
[adapters.append(int(i)) for i in file.readlines()]
|
|
adapters.append(max(adapters) + 3)
|
|
|
|
adapters = sorted(adapters)
|
|
og = adapters.pop(0)
|
|
ans = count_options(og, adapters)
|
|
|
|
print("Part 2: %d" % ans)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
part1()
|
|
part2()
|