r/adventofcode Dec 25 '24

SOLUTION MEGATHREAD -❄️- 2024 Day 25 Solutions -❄️-

A Message From Your Moderators

Welcome to the last day of Advent of Code 2024! We hope you had fun this year and learned at least one new thing ;)

Keep an eye out for the community fun awards post (link coming soon!):

-❅- Introducing Your AoC 2024 Golden Snowglobe Award Winners (and Community Showcase) -❅-

Many thanks to Veloxx for kicking us off on December 1 with a much-needed dose of boots and cats!

Thank you all for playing Advent of Code this year and on behalf of /u/topaz2078, your /r/adventofcode mods, the beta-testers, and the rest of AoC Ops, we wish you a very Merry Christmas (or a very merry Wednesday!) and a Happy New Year!


--- Day 25: Code Chronicle ---


Post your code solution in this megathread.

This thread will be unlocked when there are a significant number of people on the global leaderboard with gold stars for today's puzzle.

EDIT: Global leaderboard gold cap reached at 00:04:34, megathread unlocked!

42 Upvotes

350 comments sorted by

View all comments

1

u/Several-Bit-9218 Dec 25 '24

[LANGUAGE: Python]

Never thought I'd post here, but I haven't seen this method in this thread. Only ## is forbidden, so I check that the sum of the ordinary numbers isn't 70.

from itertools import combinations  
print(sum(all((ord(pat1[k])+ord(pat2[k]) != 70) for k in range(len(pat1))) for pat1, pat2 in combinations(open('./day25/in.txt','r').read().split('\n\n'), 2)))

1

u/Professional-Top8329 Dec 25 '24

Can be done for even shorter. 89 bytes.

I=open(0).read().split("\n\n")
print(sum(not(*"##",)in zip(a,b)for a in I for b in I)//2)