From 1756e53efc17bac4b82ad3a1d4b500040021e259 Mon Sep 17 00:00:00 2001 From: tebarius Date: Tue, 24 Dec 2024 15:17:04 +0100 Subject: [PATCH] 24 anfang --- 24/24-01.py | 36 ++++++ 24/ex-big.txt | 47 ++++++++ 24/ex-small.txt | 10 ++ 24/input.txt | 313 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 406 insertions(+) create mode 100644 24/24-01.py create mode 100644 24/ex-big.txt create mode 100644 24/ex-small.txt create mode 100644 24/input.txt diff --git a/24/24-01.py b/24/24-01.py new file mode 100644 index 0000000..d5c106d --- /dev/null +++ b/24/24-01.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +from time import time +import re + +start_time = time() + +# file = "./input.txt" +file = "./ex-small.txt" + + +# file = "./ex-big.txt" + + +def read_and_parse(input_file: str) -> tuple[dict[str:int], list[tuple[str, str, str, str]]]: + result_dict = {} + with open(input_file, 'r') as d: + datei = d.read() + pat_dict = r'(.+)\: +(\d)' + pat_list = r'(.+) +(.+) +(.+) +\-\> +(.+)' + match_d = re.findall(pat_dict, datei) + # print(match_d) + for d in match_d: + result_dict[d[0]] = int(d[1]) + match_l = re.findall(pat_list, datei) + # print(match_l) + return result_dict, match_l + + +if __name__ == "__main__": + in_dict, in_list = read_and_parse(file) + print(in_dict) + print(in_list) + + print(f'Runtime: {time() - start_time:.2f} s') diff --git a/24/ex-big.txt b/24/ex-big.txt new file mode 100644 index 0000000..94b6eed --- /dev/null +++ b/24/ex-big.txt @@ -0,0 +1,47 @@ +x00: 1 +x01: 0 +x02: 1 +x03: 1 +x04: 0 +y00: 1 +y01: 1 +y02: 1 +y03: 1 +y04: 1 + +ntg XOR fgs -> mjb +y02 OR x01 -> tnw +kwq OR kpj -> z05 +x00 OR x03 -> fst +tgd XOR rvg -> z01 +vdt OR tnw -> bfw +bfw AND frj -> z10 +ffh OR nrd -> bqk +y00 AND y03 -> djm +y03 OR y00 -> psh +bqk OR frj -> z08 +tnw OR fst -> frj +gnj AND tgd -> z11 +bfw XOR mjb -> z00 +x03 OR x00 -> vdt +gnj AND wpb -> z02 +x04 AND y00 -> kjc +djm OR pbm -> qhw +nrd AND vdt -> hwm +kjc AND fst -> rvg +y04 OR y02 -> fgs +y01 AND x02 -> pbm +ntg OR kjc -> kwq +psh XOR fgs -> tgd +qhw XOR tgd -> z09 +pbm OR djm -> kpj +x03 XOR y03 -> ffh +x00 XOR y04 -> ntg +bfw OR bqk -> z06 +nrd XOR fgs -> wpb +frj XOR qhw -> z04 +bqk OR frj -> z07 +y03 OR x01 -> nrd +hwm AND bqk -> z03 +tgd XOR rvg -> z12 +tnw OR pbm -> gnj diff --git a/24/ex-small.txt b/24/ex-small.txt new file mode 100644 index 0000000..8e277c1 --- /dev/null +++ b/24/ex-small.txt @@ -0,0 +1,10 @@ +x00: 1 +x01: 1 +x02: 1 +y00: 0 +y01: 1 +y02: 0 + +x00 AND y00 -> z00 +x01 XOR y01 -> z01 +x02 OR y02 -> z02 diff --git a/24/input.txt b/24/input.txt new file mode 100644 index 0000000..ebd6430 --- /dev/null +++ b/24/input.txt @@ -0,0 +1,313 @@ +x00: 1 +x01: 1 +x02: 1 +x03: 1 +x04: 0 +x05: 1 +x06: 0 +x07: 1 +x08: 0 +x09: 1 +x10: 1 +x11: 1 +x12: 1 +x13: 1 +x14: 0 +x15: 1 +x16: 1 +x17: 0 +x18: 0 +x19: 1 +x20: 1 +x21: 0 +x22: 1 +x23: 1 +x24: 0 +x25: 0 +x26: 0 +x27: 0 +x28: 1 +x29: 1 +x30: 1 +x31: 0 +x32: 1 +x33: 0 +x34: 1 +x35: 1 +x36: 1 +x37: 0 +x38: 1 +x39: 1 +x40: 0 +x41: 0 +x42: 0 +x43: 1 +x44: 1 +y00: 1 +y01: 1 +y02: 1 +y03: 1 +y04: 1 +y05: 0 +y06: 0 +y07: 0 +y08: 0 +y09: 0 +y10: 1 +y11: 0 +y12: 0 +y13: 1 +y14: 0 +y15: 1 +y16: 0 +y17: 1 +y18: 1 +y19: 0 +y20: 1 +y21: 0 +y22: 0 +y23: 0 +y24: 1 +y25: 0 +y26: 0 +y27: 0 +y28: 1 +y29: 1 +y30: 0 +y31: 1 +y32: 0 +y33: 0 +y34: 0 +y35: 0 +y36: 1 +y37: 1 +y38: 0 +y39: 0 +y40: 1 +y41: 1 +y42: 1 +y43: 1 +y44: 1 + +kgv OR rdq -> stt +y00 AND x00 -> pjf +y13 XOR x13 -> wqh +y21 AND x21 -> ccs +wws AND cds -> kgv +x09 AND y09 -> sgj +x14 XOR y14 -> tnm +msn OR ssj -> vfb +cwt AND wfd -> wjk +y41 XOR x41 -> fsh +jhn AND hjd -> nfk +kvg OR sgj -> z09 +trk OR trs -> nvk +jnf XOR wgh -> cwt +bkg AND tgw -> vrw +dvr OR wtv -> dwg +vch AND css -> cjn +wmf AND mdn -> qnn +gbv AND pth -> hns +jgb AND qbm -> jdb +x05 XOR y05 -> wcq +gtv OR pjr -> crc +y23 XOR x23 -> vph +jwq AND fqf -> tgv +y38 XOR x38 -> ghm +dgc OR ntm -> hrs +y22 XOR x22 -> tgw +stt AND wcr -> krw +gvt AND kns -> nmv +y03 AND x03 -> scc +x42 XOR y42 -> vcf +jbj OR rrc -> cvn +pth XOR gbv -> z17 +hpb OR scc -> ngk +mvf XOR hrs -> z29 +x17 XOR y17 -> gbv +y22 AND x22 -> kkq +y37 XOR x37 -> vcr +sqq XOR fgt -> z36 +wcq AND knc -> gnw +krw OR hbj -> nkt +hpm OR mrw -> knc +vts OR hsk -> vfw +y19 AND x19 -> sjt +qbm XOR jgb -> z21 +x28 AND y28 -> ntm +bwv XOR wsh -> z12 +y43 XOR x43 -> cch +vfb XOR fpt -> z03 +qkc OR sqw -> hjd +vqr OR ndj -> fqf +mcf AND cch -> kcq +qjb XOR kjr -> z35 +y44 AND x44 -> mgv +vfw AND mqt -> ndj +x34 XOR y34 -> jwk +jnf AND wgh -> kvg +x41 AND y41 -> dqw +x02 AND y02 -> msn +vfb AND fpt -> hpb +swb AND qvq -> gtv +vnq XOR wqh -> z13 +trn XOR pgk -> z06 +cvn XOR gmp -> z30 +vfw XOR mqt -> z07 +ctf XOR tnm -> z14 +hwb OR wmb -> ctf +ghm XOR hjg -> z38 +wkt OR qjj -> tgj +kcq OR dcc -> cpw +x06 XOR y06 -> pgk +cjn OR jmv -> jgb +y00 XOR x00 -> z00 +mdn XOR wmf -> z39 +y36 AND x36 -> gst +tgw XOR bkg -> z22 +tgv OR cfk -> wgh +y25 XOR x25 -> ktd +wdj AND fvw -> dvr +kbk OR wpm -> sgn +x44 XOR y44 -> dph +wsh AND bwv -> tnr +y24 XOR x24 -> skp +y30 XOR x30 -> gmp +y05 AND x05 -> z05 +x11 AND y11 -> rsw +qnn OR rrn -> fvw +x34 AND y34 -> hgg +wcs OR rpr -> fgt +x07 AND y07 -> vqr +fvw XOR wdj -> z40 +y29 AND x29 -> rrc +fsh XOR dwg -> z41 +cpw XOR dph -> z44 +y32 XOR x32 -> hbg +pjf AND fcg -> vms +cwt XOR wfd -> z10 +x27 AND y27 -> hbj +y04 AND x04 -> mrw +vcf XOR btn -> z42 +vnq AND wqh -> wmb +x43 AND y43 -> dcc +vrw OR kkq -> jjr +cds XOR wws -> z26 +x39 XOR y39 -> wmf +y29 XOR x29 -> mvf +rfn OR pmm -> mhh +y35 XOR x35 -> qjb +ngk XOR vvf -> z04 +kht OR gfk -> cds +bgb OR tnr -> vnq +kns XOR gvt -> z33 +sjt OR pbd -> vch +hvp OR nfk -> pth +x38 AND y38 -> dtt +y18 AND x18 -> pjr +x07 XOR y07 -> mqt +gst OR bmm -> nwb +y21 XOR x21 -> qbm +jwk AND gfr -> cph +nvk XOR brp -> z31 +x17 AND y17 -> nkr +sqt OR nqs -> kns +qbs OR vht -> sfw +brp AND nvk -> rfn +hrs AND mvf -> jbj +x12 AND y12 -> bgb +y36 XOR x36 -> sqq +jdb OR ccs -> bkg +x04 XOR y04 -> vvf +y19 XOR x19 -> vmj +vms OR vpb -> kmq +y35 AND x35 -> wcs +vph AND jjr -> qbs +fgt AND sqq -> bmm +vcf AND btn -> fbb +wjk OR ktk -> kmn +x08 AND y08 -> cfk +y01 XOR x01 -> fcg +y23 AND x23 -> vht +kgm AND nkt -> dgc +swb XOR qvq -> z18 +x09 XOR y09 -> jnf +cch XOR mcf -> z43 +sgn XOR smv -> z15 +y40 XOR x40 -> wdj +gnw OR gdd -> trn +dgn OR pqt -> hjg +y30 AND x30 -> trs +ngk AND vvf -> hpm +y12 XOR x12 -> bwv +kmn XOR dmk -> z11 +y20 AND x20 -> css +stt XOR wcr -> z27 +vph XOR jjr -> z23 +nmv OR wjj -> gfr +x02 XOR y02 -> jdc +y28 XOR x28 -> kgm +gfr XOR jwk -> z34 +x16 AND y16 -> hvp +gkb OR mgv -> z45 +mhh AND hbg -> sqt +fqf XOR jwq -> z08 +x13 AND y13 -> hwb +vmj AND crc -> pbd +dwg AND fsh -> brb +sfw AND skp -> qjj +knc XOR wcq -> gdd +x31 XOR y31 -> brp +fcg XOR pjf -> z01 +dqw OR brb -> btn +cvn AND gmp -> trk +y16 XOR x16 -> jhn +y27 XOR x27 -> wcr +x33 XOR y33 -> gvt +y08 XOR x08 -> jwq +trn AND pgk -> hsk +nkt XOR kgm -> z28 +y15 AND x15 -> sqw +crc XOR vmj -> z19 +hbg XOR mhh -> z32 +smv AND sgn -> qkc +vcr XOR nwb -> pqt +x14 AND y14 -> kbk +jhn XOR hjd -> z16 +x10 AND y10 -> ktk +kmq AND jdc -> ssj +y15 XOR x15 -> smv +sqd OR dtt -> mdn +x24 AND y24 -> wkt +hgg OR cph -> kjr +ktd XOR tgj -> z25 +ctf AND tnm -> wpm +x40 AND y40 -> wtv +x10 XOR y10 -> wfd +y33 AND x33 -> wjj +x39 AND y39 -> rrn +y03 XOR x03 -> fpt +x31 AND y31 -> pmm +y32 AND x32 -> nqs +x11 XOR y11 -> dmk +y18 XOR x18 -> qvq +x37 AND y37 -> dgn +skq OR rsw -> wsh +vch XOR css -> z20 +kmn AND dmk -> skq +ghm AND hjg -> sqd +kjr AND qjb -> rpr +y01 AND x01 -> vpb +cpw AND dph -> gkb +y26 AND x26 -> rdq +tgj AND ktd -> kht +x26 XOR y26 -> wws +sfw XOR skp -> z24 +y42 AND x42 -> thc +nkr OR hns -> swb +y20 XOR x20 -> jmv +vcr AND nwb -> z37 +fbb OR thc -> mcf +x06 AND y06 -> vts +jdc XOR kmq -> z02 +y25 AND x25 -> gfk