37 lines
835 B
Python
Executable File
37 lines
835 B
Python
Executable File
#! /usr/bin/env python3
|
|
|
|
|
|
def part1():
|
|
print("Part1:")
|
|
seen = set()
|
|
with open("./aoc-d1-input.txt", "r") as f:
|
|
for line in f:
|
|
v = int(line)
|
|
remain = 2020 - v
|
|
if remain in seen:
|
|
print(f"{v} * {remain} = {v*remain}")
|
|
break
|
|
seen.add(v)
|
|
|
|
|
|
def part2():
|
|
print("Part2:")
|
|
singles = set()
|
|
doubles = {}
|
|
with open("./aoc-d1-input.txt", "r") as f:
|
|
for line in f:
|
|
v = int(line)
|
|
remain = 2020 - v
|
|
if remain in doubles:
|
|
n2, n3 = doubles[remain]
|
|
print(f"{v} * {n2} * {n3} = {v*n2*n3}")
|
|
break
|
|
for n1 in singles:
|
|
doubles[v+n1] = (v, n1)
|
|
singles.add(v)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
part1()
|
|
part2()
|