From 7166572ccc16a31893202862f2e28bd35e46d595 Mon Sep 17 00:00:00 2001 From: AKP Date: Tue, 3 Dec 2024 09:37:30 +0000 Subject: [PATCH] 2024.02 --- challenges/2024/02-redNosedReports/README.md | 1 + challenges/2024/02-redNosedReports/main.py | 87 ++++++++++++++++++ challenges/2024/02-redNosedReports/tests.json | 14 +++ challenges/2024/README.md | 3 +- challenges/2024/benchmark-graph.png | Bin 24271 -> 26874 bytes challenges/2024/benchmarks.jsonl | 2 + 6 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 challenges/2024/02-redNosedReports/README.md create mode 100644 challenges/2024/02-redNosedReports/main.py create mode 100644 challenges/2024/02-redNosedReports/tests.json diff --git a/challenges/2024/02-redNosedReports/README.md b/challenges/2024/02-redNosedReports/README.md new file mode 100644 index 0000000..af62b55 --- /dev/null +++ b/challenges/2024/02-redNosedReports/README.md @@ -0,0 +1 @@ +# [Day 2: Red Nosed Reports](https://adventofcode.com/2024/day/2) diff --git a/challenges/2024/02-redNosedReports/main.py b/challenges/2024/02-redNosedReports/main.py new file mode 100644 index 0000000..88ef61a --- /dev/null +++ b/challenges/2024/02-redNosedReports/main.py @@ -0,0 +1,87 @@ +import sys +from typing import Optional + + +def parse(instr: str) -> list[list[int]]: + res = [] + for line in instr.splitlines(): + res.append(list(map(int, line.split(" ")))) + return res + + +def test_pair( + a: int, b: int, sequence_is_negative: Optional[bool] +) -> tuple[bool, bool]: + diff = b - a + this_is_negative = diff < 0 + + if sequence_is_negative is not None and this_is_negative != sequence_is_negative: + return False, this_is_negative + + return 1 <= abs(diff) <= 3, this_is_negative + + +def test_report(rep: list[int]) -> bool: + should_be_negative: Optional[bool] = None + ok = False + + for i, v in enumerate(rep[:-1]): + w = rep[i + 1] + + ok, neg = test_pair(v, w, should_be_negative) + if should_be_negative is None: + should_be_negative = neg + + if not ok: + break + + return ok + + +def one(instr: str): + reports = parse(instr) + + n = 0 + for rep in reports: + if test_report(rep): + n += 1 + + return n + + +def two(instr: str): + reports = parse(instr) + + n = 0 + for rep in reports: + if test_report(rep): + n += 1 + else: + ok = False + for i in range(len(rep)): + r = rep.copy() + r.pop(i) + if test_report(r): + ok = True + break + + if ok: + n += 1 + + return n + + +def _debug(*args, **kwargs): + kwargs["file"] = sys.stderr + print(*args, **kwargs) + + +if __name__ == "__main__": + if len(sys.argv) < 2 or sys.argv[1] not in ["1", "2"]: + print("Missing day argument", file=sys.stderr) + sys.exit(1) + inp = sys.stdin.read().strip() + if sys.argv[1] == "1": + print(one(inp)) + else: + print(two(inp)) diff --git a/challenges/2024/02-redNosedReports/tests.json b/challenges/2024/02-redNosedReports/tests.json new file mode 100644 index 0000000..54d412d --- /dev/null +++ b/challenges/2024/02-redNosedReports/tests.json @@ -0,0 +1,14 @@ +{ + "1": [ + { + "is": "2", + "input": "7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9\n" + } + ], + "2": [ + { + "is": "4", + "input": "7 6 4 2 1\n1 2 7 8 9\n9 7 6 2 1\n1 3 2 4 5\n8 6 4 4 1\n1 3 6 7 9\n" + } + ] +} \ No newline at end of file diff --git a/challenges/2024/README.md b/challenges/2024/README.md index e487fcc..303c06e 100644 --- a/challenges/2024/README.md +++ b/challenges/2024/README.md @@ -14,4 +14,5 @@ A day denoted with a star means it has a visualisation. | Day | Status | Solutions | Notes | |-------------------------------------|--------|----------------------|-------| -| 01 - Historian Hysteria | ★ ★ | Python | The reading comprehension was the hardest part of this. | \ No newline at end of file +| 01 - Historian Hysteria | ★ ★ | Python | The reading comprehension was the hardest part of this. | +| 02 - Red-Nosed Reindeer | ★ ★ | Python || diff --git a/challenges/2024/benchmark-graph.png b/challenges/2024/benchmark-graph.png index cea0877851adb88d7b555a1340841d31f9be29ec..b7d39c4eb691692157a25be8e4adc52c79b73b03 100644 GIT binary patch literal 26874 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 JUcGEv?sxT8+He2> literal 24271 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 diff --git a/challenges/2024/benchmarks.jsonl b/challenges/2024/benchmarks.jsonl index 44fbce0..9a3f7af 100644 --- a/challenges/2024/benchmarks.jsonl +++ b/challenges/2024/benchmarks.jsonl @@ -1,2 +1,4 @@ {"day": 1, "part": 1, "runner": "py", "min": 0.016046524047851562, "max": 0.025307178497314453, "avg": 0.016975646018981935, "n": 100} {"day": 1, "part": 2, "runner": "py", "min": 0.0161440372467041, "max": 0.019031047821044922, "avg": 0.016828114986419677, "n": 100} +{"day": 2, "part": 1, "runner": "py", "min": 0.021907567977905273, "max": 0.02720332145690918, "avg": 0.023289167881011964, "n": 100} +{"day": 2, "part": 2, "runner": "py", "min": 0.02489948272705078, "max": 0.0319674015045166, "avg": 0.026371052265167238, "n": 100}