From ecb3f23dbebf37ba570555f01babe5402b5bd7ec Mon Sep 17 00:00:00 2001 From: Mika Suhonen Date: Sat, 3 Dec 2022 11:13:13 +0200 Subject: [PATCH] Less lines, better, right? --- 03/c.py | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/03/c.py b/03/c.py index a91d553..2a8518c 100644 --- a/03/c.py +++ b/03/c.py @@ -1,29 +1,21 @@ import os -f = open(os.path.dirname(__file__)+"/input.txt", "r") +rucksacks = open(os.path.dirname(__file__) + + "/input.txt", "r").read().splitlines() -tot = 0 -tot2 = 0 +tot, tot2 = 0, 0 priorities = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" -rucksacks = f.read().splitlines() -f.close() - for data in rucksacks: - left = data[:len(data)//2] - right = data[len(data)//2:] - common = ''.join(set(left) & set(right)) - tot += priorities.rfind(common)+1 + tot += priorities.rfind(''.join(set(data[:len(data)//2]) + & set(data[len(data)//2:])))+1 print("First answer: " + str(tot)) -start = 0 -end = len(rucksacks) -step = 3 -for i in range(start, end, step): - three = rucksacks[i:i+step] - common = ''.join(set(three[0]) & set(three[1]) & set(three[2])) - tot2 += priorities.rfind(common)+1 +for i in range(0, len(rucksacks), 3): + three = rucksacks[i:i+3] + tot2 += priorities.rfind(''.join(set(three[0]) + & set(three[1]) & set(three[2])))+1 print("Second answer: " + str(tot2))