From 48c02c06ea43f4710d043f0e22500aef926b1aa6 Mon Sep 17 00:00:00 2001 From: tebarius Date: Fri, 20 Dec 2024 09:54:01 +0100 Subject: [PATCH] 06 with defaultdict --- 06/06_defaultdict.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 06/06_defaultdict.py diff --git a/06/06_defaultdict.py b/06/06_defaultdict.py new file mode 100644 index 0000000..d2b6571 --- /dev/null +++ b/06/06_defaultdict.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +#file = "./input.txt" +file = "./ex.txt" +from time import time +from collections import defaultdict +start_time = time() + +def read_file(filename:str)->list[str]: + result = [] + input_file = open(filename, "r") + for line in input_file: + line = line.strip() + if line == "": + continue + else: + result.append(line) + input_file.close() + return result + +def counter_dicts(da:list[str])->list[dict[str:int]]: + result = [defaultdict(int) for _ in range(len(da[0]))] + for d in da: + for i,b in enumerate(d): + result[i][b] += 1 + return result + +if __name__ == "__main__": + data = read_file(file) + dicts = counter_dicts(data) + + sol = "" + for dic in dicts: + sol += max(dic, key=dic.get) + print(f"Solution Part1: {sol}") + + sol = "" + for dic in dicts: + sol += min(dic, key=dic.get) + print(f"Solution Part2: {sol}") + + print(f'Runtime: {time()-start_time:.4f} s') \ No newline at end of file