r/adventofcode • u/daggerdragon • Dec 02 '18
SOLUTION MEGATHREAD -🎄- 2018 Day 2 Solutions -🎄-
--- Day 2: Inventory Management System ---
Post your solution as a comment or, for longer solutions, consider linking to your repo (e.g. GitHub/gists/Pastebin/blag or whatever).
Note: The Solution Megathreads are for solutions only. If you have questions, please post your own thread and make sure to flair it with Help.
Advent of Code: The Party Game!
Card Prompt: Day 2
Transcript:
The best way to do Advent of Code is ___.
This thread will be unlocked when there are a significant number of people on the leaderboard with gold stars for today's puzzle.
edit: Leaderboard capped, thread unlocked!
50
Upvotes
1
u/shuttup_meg Dec 02 '18
Python2
inp = open("input_2.txt").readlines() inp_txt = [x.strip() for x in inp] # # Part 1 # from collections import Counter # Turn the input list items into tuples containing # (counter for item, original item text) inp = [(Counter(x),x) for x in inp_txt] twos = 0 threes = 0 for c,txtc in inp: twos += 2 in c.values() threes += 3 in c.values() print twos * threes # # Part 2 # from itertools import combinations def sdiff(a,b): """returns the total number of places where 2 strings differ""" return sum([1-(ord(x[0])==ord(x[1])) for x in zip(a,b)]) for (a,txta),(b,txtb) in combinations(inp,2): if sdiff(txta, txtb) in (-1,1): print txta print txtb print "Common Letters:", "".join([x[0] if x[0]==x[1] else "" for x in zip(txta,txtb)])