mirror of
https://github.com/Noettore/AdventOfCode.git
synced 2025-10-15 03:36:39 +02:00
AoC 2020: day 1
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
200
2020/inputs/day_1
Normal file
200
2020/inputs/day_1
Normal file
@@ -0,0 +1,200 @@
|
||||
1837
|
||||
1585
|
||||
1894
|
||||
1715
|
||||
1947
|
||||
1603
|
||||
1746
|
||||
1911
|
||||
1939
|
||||
1791
|
||||
1800
|
||||
1479
|
||||
1138
|
||||
1810
|
||||
1931
|
||||
1833
|
||||
1470
|
||||
1882
|
||||
1725
|
||||
1496
|
||||
1890
|
||||
1862
|
||||
1990
|
||||
1958
|
||||
1997
|
||||
1844
|
||||
1524
|
||||
541
|
||||
2001
|
||||
1591
|
||||
1687
|
||||
1941
|
||||
1940
|
||||
1561
|
||||
1813
|
||||
1654
|
||||
1500
|
||||
1575
|
||||
1826
|
||||
2006
|
||||
679
|
||||
1660
|
||||
1679
|
||||
1631
|
||||
2008
|
||||
575
|
||||
1583
|
||||
1883
|
||||
1904
|
||||
1436
|
||||
1650
|
||||
1532
|
||||
1907
|
||||
1803
|
||||
1693
|
||||
1700
|
||||
359
|
||||
1516
|
||||
1625
|
||||
1908
|
||||
1994
|
||||
1910
|
||||
1644
|
||||
1706
|
||||
1781
|
||||
1639
|
||||
1662
|
||||
1712
|
||||
1796
|
||||
1915
|
||||
1550
|
||||
1721
|
||||
1697
|
||||
1917
|
||||
1665
|
||||
1646
|
||||
1968
|
||||
1881
|
||||
1893
|
||||
1468
|
||||
1678
|
||||
1774
|
||||
285
|
||||
1754
|
||||
1856
|
||||
1677
|
||||
1823
|
||||
1802
|
||||
1681
|
||||
1587
|
||||
1767
|
||||
1711
|
||||
1900
|
||||
1983
|
||||
1787
|
||||
1996
|
||||
1726
|
||||
1982
|
||||
1971
|
||||
1553
|
||||
1542
|
||||
1863
|
||||
2002
|
||||
1831
|
||||
1891
|
||||
1555
|
||||
2000
|
||||
1847
|
||||
1783
|
||||
1873
|
||||
1761
|
||||
1742
|
||||
1534
|
||||
1993
|
||||
1898
|
||||
1973
|
||||
1974
|
||||
1597
|
||||
1540
|
||||
1581
|
||||
1864
|
||||
1452
|
||||
1637
|
||||
1649
|
||||
1886
|
||||
1965
|
||||
1460
|
||||
1664
|
||||
1701
|
||||
1647
|
||||
1812
|
||||
1937
|
||||
1902
|
||||
2004
|
||||
1991
|
||||
1718
|
||||
1887
|
||||
1606
|
||||
1748
|
||||
1737
|
||||
1608
|
||||
1641
|
||||
1710
|
||||
1724
|
||||
705
|
||||
1985
|
||||
1571
|
||||
1805
|
||||
131
|
||||
1788
|
||||
1707
|
||||
1513
|
||||
1615
|
||||
1897
|
||||
1476
|
||||
1927
|
||||
1745
|
||||
1926
|
||||
1839
|
||||
1807
|
||||
1955
|
||||
1692
|
||||
1645
|
||||
1699
|
||||
1471
|
||||
1604
|
||||
1830
|
||||
1622
|
||||
1972
|
||||
1866
|
||||
1814
|
||||
1816
|
||||
1855
|
||||
1820
|
||||
1034
|
||||
1673
|
||||
1704
|
||||
1969
|
||||
1580
|
||||
1980
|
||||
1739
|
||||
1896
|
||||
434
|
||||
497
|
||||
1851
|
||||
1933
|
||||
458
|
||||
1521
|
||||
1551
|
||||
1762
|
||||
2010
|
||||
1614
|
||||
1840
|
||||
1747
|
||||
1875
|
||||
1836
|
||||
1895
|
||||
1518
|
||||
1825
|
||||
1987
|
43
2020/solutions/day_1.py
Normal file
43
2020/solutions/day_1.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""AOC Day 1"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
def read_input(input_path: str) -> list:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
entries = list()
|
||||
for entry in input_file.readlines():
|
||||
entries.append(int(entry))
|
||||
return entries
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a set of int and return an int"""
|
||||
for x in entries:
|
||||
complement = 2020 - x
|
||||
if complement in entries:
|
||||
return x * complement
|
||||
return None
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a set of int and return an int"""
|
||||
for x, i in enumerate(entries):
|
||||
for y in entries[i:]:
|
||||
complement = 2020 - x - y
|
||||
if complement in entries:
|
||||
return x * y * complement
|
||||
return None
|
||||
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path.cwd()) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
entries = read_input(input_path)
|
||||
start_time = time.time()
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user