From 10a569faed4c188d3f4ececb00272149f2cdb1c7 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Tue, 1 Dec 2020 08:19:38 +0100 Subject: [PATCH] day1 --- aoclib/__init__.py | 1 + aoclib/inputs.py | 18 ++++ day1.py | 13 +++ day1_2.py | 16 ++++ inputs/1 | 200 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 248 insertions(+) create mode 100644 aoclib/__init__.py create mode 100644 aoclib/inputs.py create mode 100644 day1.py create mode 100644 day1_2.py create mode 100644 inputs/1 diff --git a/aoclib/__init__.py b/aoclib/__init__.py new file mode 100644 index 0000000..1dfaf1d --- /dev/null +++ b/aoclib/__init__.py @@ -0,0 +1 @@ +from .inputs import * diff --git a/aoclib/inputs.py b/aoclib/inputs.py new file mode 100644 index 0000000..34f73ef --- /dev/null +++ b/aoclib/inputs.py @@ -0,0 +1,18 @@ +import os + +BASE_PATH = os.path.dirname(os.path.dirname(__file__)) +INPUTS_PATH = os.path.join(BASE_PATH, 'inputs') + + +def getInputLineAsArray(day, return_type=None): + """ + get input for day x as array, each line representing one array entry + when type is given, each entry will be converted to the specified type + """ + with open(os.path.join(INPUTS_PATH, str(day)), "r") as f: + input_array = f.readlines() + + if return_type: + return [return_type(i) for i in input_array] + else: + return input_array diff --git a/day1.py b/day1.py new file mode 100644 index 0000000..29ffa99 --- /dev/null +++ b/day1.py @@ -0,0 +1,13 @@ +import aoclib +import sys + +#my_input = [1721, 979, 366, 299, 675, 1456] # debug input +my_input = aoclib.getInputLineAsArray(1, int) + +while len(my_input) > 0: + try_value = my_input.pop() + for value in my_input: + if try_value + value == 2020: + print(try_value * value) + sys.exit(0) + diff --git a/day1_2.py b/day1_2.py new file mode 100644 index 0000000..14a93bd --- /dev/null +++ b/day1_2.py @@ -0,0 +1,16 @@ +import aoclib +import sys + +#my_input = [1721, 979, 366, 299, 675, 1456] # debug input +my_input = aoclib.getInputLineAsArray(1, int) + +while len(my_input) > 0: + try_value = my_input.pop() + for value_1 in my_input: + for value_2 in my_input: + if value_1 == value_2: + continue + if try_value + value_1 + value_2 == 2020: + print(try_value * value_1 * value_2) + sys.exit(0) + diff --git a/inputs/1 b/inputs/1 new file mode 100644 index 0000000..2462e3a --- /dev/null +++ b/inputs/1 @@ -0,0 +1,200 @@ +1789 +1818 +1729 +1578 +1927 +751 +1772 +1521 +1850 +1438 +1855 +1334 +1878 +1290 +1678 +1847 +1495 +1538 +1403 +1797 +1906 +1770 +1963 +1370 +1684 +1328 +1544 +1528 +1871 +2010 +1999 +1347 +1760 +1903 +1860 +1468 +1511 +1477 +1668 +1979 +1358 +1298 +1493 +1459 +1382 +2001 +1394 +1681 +1515 +1948 +1991 +1775 +1661 +1786 +1966 +1506 +1853 +1373 +1454 +1462 +1830 +1964 +1442 +1455 +2008 +1854 +1763 +1758 +1751 +1460 +1630 +1487 +1360 +1793 +1590 +1940 +1388 +1313 +1408 +1429 +1725 +1397 +1941 +1974 +1788 +1473 +1913 +664 +1989 +1490 +1778 +1726 +1366 +2005 +1449 +1924 +1926 +1769 +1314 +1636 +1780 +1546 +1647 +1856 +320 +396 +1595 +1867 +1602 +1699 +1367 +1876 +1662 +1686 +1581 +1697 +1938 +1400 +720 +1808 +1625 +1439 +1734 +2003 +1718 +1879 +1864 +1811 +1309 +721 +1607 +1814 +1484 +1869 +1736 +1507 +1437 +1894 +1561 +2004 +269 +1942 +1915 +1767 +1562 +1364 +1783 +1863 +1601 +1323 +182 +1985 +1722 +1545 +1774 +1552 +1742 +1790 +1874 +1583 +1308 +1441 +1463 +1503 +1447 +1540 +1953 +1371 +1331 +1688 +1905 +1815 +1799 +811 +1446 +1374 +1936 +1665 +1433 +1551 +1806 +1674 +1784 +1596 +1704 +1393 +1691 +1567 +1335 +593 +1509 +1986 +1297 +1419 +1418 +1339 +1745 +1930 +1514 +1706