mirror of
https://github.com/Noettore/AdventOfCode.git
synced 2025-10-15 19:56:39 +02:00
AoC 2020: day 1
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -12,8 +12,5 @@
|
|||||||
*.out
|
*.out
|
||||||
|
|
||||||
#VSCode
|
#VSCode
|
||||||
|
.vscode
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/settings.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/extensions.json
|
|
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