From bd2dd9a4f9ce0f4771ae11e831b55f35be0c23e0 Mon Sep 17 00:00:00 2001 From: Joscha Date: Sun, 4 Dec 2022 14:38:19 +0100 Subject: [PATCH] [py] Port 2020_10 --- inputs/2020_10 | 102 ++++++++++++++++++++++++++++ py/aoc/__init__.py | 2 + py/{2020/10.py => aoc/y2020/d10.py} | 12 +--- sample_inputs/2020_10.01 | 11 +++ sample_inputs/2020_10.02 | 31 +++++++++ 5 files changed, 149 insertions(+), 9 deletions(-) create mode 100644 inputs/2020_10 rename py/{2020/10.py => aoc/y2020/d10.py} (53%) create mode 100644 sample_inputs/2020_10.01 create mode 100644 sample_inputs/2020_10.02 diff --git a/inputs/2020_10 b/inputs/2020_10 new file mode 100644 index 0000000..5746f73 --- /dev/null +++ b/inputs/2020_10 @@ -0,0 +1,102 @@ +103 +131 +121 +151 +118 +12 +7 +2 +90 +74 +160 +58 +15 +83 +153 +140 +166 +1 +148 +33 +165 +39 +100 +135 +68 +77 +25 +9 +54 +94 +101 +55 +141 +22 +97 +35 +57 +117 +102 +64 +109 +114 +56 +51 +125 +82 +154 +142 +155 +45 +75 +158 +120 +5 +19 +61 +34 +128 +106 +88 +84 +137 +96 +136 +27 +6 +21 +89 +69 +162 +112 +127 +119 +161 +38 +42 +134 +20 +81 +48 +73 +87 +26 +95 +146 +113 +76 +32 +70 +8 +18 +67 +124 +80 +93 +29 +126 +147 +28 +152 +145 +159 diff --git a/py/aoc/__init__.py b/py/aoc/__init__.py index 2518868..51ac9b0 100644 --- a/py/aoc/__init__.py +++ b/py/aoc/__init__.py @@ -2,10 +2,12 @@ import sys import argparse from pathlib import Path +from .y2020 import d10 from .y2021 import d14 from .y2022 import d01, d02, d03, d04 DAYS = { + "2020_10": y2020.d10.solve, "2021_14": y2021.d14.solve, "2022_01": y2022.d01.solve, "2022_02": y2022.d02.solve, diff --git a/py/2020/10.py b/py/aoc/y2020/d10.py similarity index 53% rename from py/2020/10.py rename to py/aoc/y2020/d10.py index 4edc4d8..90a2e04 100644 --- a/py/2020/10.py +++ b/py/aoc/y2020/d10.py @@ -1,8 +1,5 @@ -import sys - -def main(path): - with open(path) as f: - values = list(sorted(int(i) for i in f)) +def solve(inputstr): + values = list(sorted(int(i) for i in inputstr.splitlines())) values.append(max(values) + 3) diffs = [y - x for x, y in zip([0] + values, values)] @@ -10,8 +7,5 @@ def main(path): combinations = [1] + [0] * max(values) for adapter in values: - combinations[adapter] = sum(combinations[max(0, adapter-3):adapter]) + combinations[adapter] = sum(combinations[max(0, adapter - 3) : adapter]) print(f"Part 2: {combinations[-1]}") - -if __name__ == "__main__": - main(sys.argv[1]) diff --git a/sample_inputs/2020_10.01 b/sample_inputs/2020_10.01 new file mode 100644 index 0000000..ec4a03f --- /dev/null +++ b/sample_inputs/2020_10.01 @@ -0,0 +1,11 @@ +16 +10 +15 +5 +1 +11 +7 +19 +6 +12 +4 diff --git a/sample_inputs/2020_10.02 b/sample_inputs/2020_10.02 new file mode 100644 index 0000000..e6376dc --- /dev/null +++ b/sample_inputs/2020_10.02 @@ -0,0 +1,31 @@ +28 +33 +18 +42 +31 +14 +46 +20 +48 +47 +24 +23 +49 +45 +19 +38 +39 +11 +1 +32 +25 +35 +8 +17 +7 +9 +4 +2 +34 +10 +3