Skip to content

Commit e6809db

Browse files
committed
[2024/5] p2 solved
1 parent df0981c commit e6809db

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

.aoc_tiles/tiles/2024/05.png

85 Bytes
Loading

2024/5/script.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,30 @@ def validate(page_order, rule_map) -> bool:
99
return True
1010

1111

12+
def find_middle(page_order, rule_map) -> int:
13+
for page in page_order:
14+
pages = rule_map[page].intersection(set(page_order))
15+
if len(pages) == len(page_order)//2:
16+
return page
17+
# print(page_order, page, rule_map[page], pages)
18+
19+
1220
def main():
1321
rules, page_orders = aoc.read_sections()
1422
rules = [list(map(int, rule.split('|'))) for rule in rules.split('\n')]
1523
page_orders = [list(map(int, pages.split(','))) for pages in page_orders.split('\n')]
16-
rule_map = defaultdict(list)
24+
rule_map = defaultdict(set)
1725
for rule in rules:
18-
rule_map[rule[0]].append(rule[1])
26+
rule_map[rule[0]].add(rule[1])
1927

2028
print("p1:", sum(page_order[len(page_order)//2]
2129
for page_order in page_orders
2230
if validate(page_order, rule_map)))
2331

32+
print("p2:", sum(find_middle(page_order, rule_map)
33+
for page_order in page_orders
34+
if not validate(page_order, rule_map)))
35+
2436

2537
if __name__ == "__main__":
2638
main()

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ My solutions to the yearly Advents of Code
33

44
<!-- AOC TILES BEGIN -->
55
<h1 align="center">
6-
Advent of Code - 170/460 ⭐
6+
Advent of Code - 171/460 ⭐
77
</h1>
88
<h1 align="center">
9-
2024 - 9 ⭐ - Python
9+
2024 - 10 ⭐ - Python
1010
</h1>
1111
<a href="2024/1/script.py">
1212
<img src=".aoc_tiles/tiles/2024/01.png" width="161px">

0 commit comments

Comments
 (0)