2020 Day 01
This commit is contained in:
28
2020/01/code.py
Normal file
28
2020/01/code.py
Normal file
@ -0,0 +1,28 @@
|
||||
""" https://adventofcode.com/2020/day/1 """
|
||||
|
||||
def readFile() -> list:
|
||||
with open(f"{__file__.rstrip('code.py')}input.txt", "r") as f:
|
||||
return [int(line[:-1]) for line in f.readlines()]
|
||||
|
||||
def part1(vals: list) -> int:
|
||||
for val in vals:
|
||||
if (2020 - val) in vals:
|
||||
return (2020 - val) * val
|
||||
|
||||
def part2(vals: list) -> int:
|
||||
for i in range(len(vals)):
|
||||
for j in range(i, len(vals)):
|
||||
if (2020 - vals[i] - vals[j]) in vals:
|
||||
return vals[i] * vals[j] * (2020 - vals[i] - vals[j])
|
||||
|
||||
|
||||
def test():
|
||||
test_input = [1721, 979, 366, 299, 675, 1456]
|
||||
assert part1(test_input) == 514579
|
||||
assert part2(test_input) == 241861950
|
||||
|
||||
if __name__ == "__main__":
|
||||
test()
|
||||
vals = readFile()
|
||||
print(f"Part 1: {part1(vals)}")
|
||||
print(f"Part 2: {part2(vals)}")
|
Reference in New Issue
Block a user