04
This commit is contained in:
40
04/04-1.py
Normal file
40
04/04-1.py
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
file = "./input.txt"
|
||||
#file = "./ex.txt"
|
||||
from time import time
|
||||
import re
|
||||
start_time = time()
|
||||
|
||||
def sortiere_und_verbinde_buchstaben(dictionary:dict[str:int])->str:
|
||||
sortierte_liste = sorted(dictionary.keys(), key=lambda x: (-dictionary[x], x))
|
||||
return ''.join(sortierte_liste[:5])
|
||||
|
||||
def create_checksum(txt:str)-> str:
|
||||
dic = {}
|
||||
txt = "".join(txt.split("-"))
|
||||
for b in txt:
|
||||
if b in dic:
|
||||
dic[b] = dic[b]+1
|
||||
else:
|
||||
dic[b] = 1
|
||||
return sortiere_und_verbinde_buchstaben(dic)
|
||||
|
||||
if __name__ == "__main__":
|
||||
sol = 0
|
||||
input_file = open(file, "r")
|
||||
for line in input_file:
|
||||
line = line.strip()
|
||||
if line == "":
|
||||
continue
|
||||
else:
|
||||
pat = r'^([a-z-]+)-(\d+)\[([a-z]+)\]$'
|
||||
match = re.match(pat,line)
|
||||
check = create_checksum(match.group(1))
|
||||
if check == match.group(3):
|
||||
sol += int(match.group(2))
|
||||
input_file.close()
|
||||
|
||||
print(f"Solution - Part1: {sol}")
|
||||
print(f'Runtime: {time()-start_time:.4f} s')
|
||||
Reference in New Issue
Block a user