From ce766388fdbb05927b96ddc17a3bad92a8532163 Mon Sep 17 00:00:00 2001 From: CptCaptain Date: Wed, 20 Jan 2021 18:56:33 +0100 Subject: [PATCH] initial commit, finish day 1 --- day1/input.txt | 200 ++++++++++++++++++++++++++++++++++++++++++ day1/report_repair.py | 56 ++++++++++++ requirements.txt | 1 + 3 files changed, 257 insertions(+) create mode 100644 day1/input.txt create mode 100644 day1/report_repair.py create mode 100644 requirements.txt diff --git a/day1/input.txt b/day1/input.txt new file mode 100644 index 0000000..f522f3f --- /dev/null +++ b/day1/input.txt @@ -0,0 +1,200 @@ +1227 +1065 +329 +1063 +1889 +1700 +1805 +1373 +389 +1263 +1276 +1136 +1652 +1981 +1406 +1249 +1197 +1379 +1050 +1791 +1703 +2001 +1842 +1707 +1486 +1204 +1821 +1807 +1712 +1871 +1599 +1390 +1219 +1612 +1980 +1857 +1511 +1702 +1455 +1303 +1052 +1754 +1545 +1488 +1848 +1236 +1549 +1887 +1970 +1123 +1686 +1404 +1688 +1106 +1296 +401 +1829 +1693 +1389 +1957 +914 +1176 +1348 +1275 +1624 +1401 +1045 +1396 +1352 +1569 +1060 +1235 +1679 +1503 +1340 +1872 +1410 +1077 +958 +1681 +1189 +1466 +1087 +1852 +1293 +1139 +1300 +1323 +661 +1388 +1983 +1325 +1112 +1774 +1858 +1785 +1616 +1255 +1198 +1354 +1124 +1834 +1417 +1918 +1496 +33 +1150 +1861 +1172 +2006 +1199 +1558 +1919 +1620 +1613 +1710 +1477 +1592 +1709 +1909 +1670 +1922 +1840 +1768 +1982 +1193 +1736 +1877 +1770 +1191 +1433 +1072 +1148 +1225 +1147 +1171 +1424 +1913 +1228 +1339 +1814 +1504 +1251 +1240 +1272 +1500 +1927 +1428 +1641 +1453 +1729 +1976 +1808 +1180 +1024 +1108 +1085 +1669 +1636 +1005 +1520 +1929 +1626 +1551 +1234 +1988 +1256 +1524 +1571 +1506 +1977 +1749 +1408 +1540 +1934 +1810 +1328 +1910 +1478 +1600 +1699 +1413 +1446 +1798 +1013 +1998 +1661 +1058 +1051 +1220 +1447 +1675 +1912 +1668 +1932 +1962 +1055 +1757 +1116 +1090 diff --git a/day1/report_repair.py b/day1/report_repair.py new file mode 100644 index 0000000..12db251 --- /dev/null +++ b/day1/report_repair.py @@ -0,0 +1,56 @@ +import pytest +from itertools import combinations +from typing import Tuple, List +from math import prod + + +def test_find_sum_two(): + test_string = """ +1721 +979 +366 +299 +675 +1456 +""" + assert find_sum(intify_input(test_string), 2) == (1721, 299) + + +def test_find_sum_three(): + test_string = """ +1721 +979 +366 +299 +675 +145""" + assert find_sum(intify_input(test_string), 3) == (979, 366, 675) + + +def read_input_data(path: str) -> str: + with open(path, 'r') as f: + data = f.read() + return data + + +def find_sum(data: List[int], n_summands: int = 2, target: int = 2020) -> Tuple[int, int]: + for combo in combinations(data, n_summands): + if sum(combo) == target: + print(f'sum({combo}) == {target}') + return combo + + +def produce_result(data_path: str, n_summands) -> int: + data = intify_input(read_input_data(data_path)) + combo = find_sum(data, n_summands) + return prod(combo) + + +def intify_input(data): + data = [int(num) for num in data.split('\n') if num] + return data + + +if __name__ == '__main__': + result = produce_result('input.txt', 3) + print(f'Result: {result}') diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..55b033e --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pytest \ No newline at end of file