diff options
Diffstat (limited to '2024/day5/solve2.py')
-rw-r--r-- | 2024/day5/solve2.py | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/2024/day5/solve2.py b/2024/day5/solve2.py deleted file mode 100644 index 4675e85..0000000 --- a/2024/day5/solve2.py +++ /dev/null @@ -1,36 +0,0 @@ -from functools import cmp_to_key
-
-def is_update_correct(update: list[str], rules: list[tuple[str, str]]) -> bool:
- for idx, page in enumerate(update):
- for previous_page in (update[previous_idx] for previous_idx in range(idx)):
- if (page, previous_page) in rules:
- return False
-
- return True
-
-
-rules = []
-updates = []
-
-reading_updates = False
-with open("input") as f:
- for line in f.readlines():
- if reading_updates:
- updates.append(line.strip().split(","))
- elif line == "\n":
- reading_updates = True
- else:
- rules.append(tuple(line.strip().split("|")))
-
-for idx in range(len(updates) - 1, -1, -1):
- if is_update_correct(updates[idx], rules):
- updates.pop(idx)
-
-for update in updates:
- update.sort(key=cmp_to_key(lambda item1, item2: -1 if (item1, item2) in rules else 1 if (item2, item1) in rules else 0))
-
-result = 0
-for update in updates:
- result += int(update[len(update) // 2])
-
-print(result)
|