From e776ba5d172a41e08b7bb168a12c6e2e375cc691 Mon Sep 17 00:00:00 2001 From: Nigel Barink Date: Sun, 7 Dec 2025 03:00:13 +0100 Subject: [PATCH] solved part 1 day 1.. working on part 2 --- day_1/input.txt | 4161 +++++++++++++++++++++++++++++++++++++++++++ day_1/solution1.py | 39 + day_1/solution2.py | 41 + day_1/testinput.txt | 10 + 4 files changed, 4251 insertions(+) create mode 100644 day_1/input.txt create mode 100644 day_1/solution1.py create mode 100644 day_1/solution2.py create mode 100644 day_1/testinput.txt diff --git a/day_1/input.txt b/day_1/input.txt new file mode 100644 index 0000000..15b9694 --- /dev/null +++ b/day_1/input.txt @@ -0,0 +1,4161 @@ +R1 +L31 +R5 +L11 +L37 +L46 +R31 +R36 +L33 +R37 +L35 +R15 +R15 +L9 +R40 +L45 +R5 +R35 +R40 +L12 +R46 +R5 +R10 +L47 +R49 +L47 +L50 +R11 +R26 +L7 +L24 +R21 +L9 +R27 +R28 +L45 +R15 +L13 +R39 +L32 +L11 +L32 +R29 +L48 +L41 +R14 +R26 +L5 +L35 +R72 +L52 +L71 +R99 +L28 +L71 +R33 +R69 +R90 +R8 +R26 +R78 +L93 +L28 +L83 +R18 +R27 +L73 +L72 +L14 +R26 +R85 +L81 +L48 +R89 +L57 +R60 +L60 +L17 +L34 +R51 +R81 +L81 +R87 +R13 +L47 +L6 +L47 +L18 +L82 +L15 +R8 +R47 +L40 +L61 +L70 +L49 +L36 +R45 +L57 +R34 +R94 +R577 +R23 +R25 +L725 +L47 +L53 +R37 +R63 +L308 +L292 +L54 +L46 +L19 +L81 +R680 +R20 +L23 +R23 +R513 +R12 +R77 +R8 +R390 +R18 +R82 +R68 +L68 +L366 +L34 +R109 +L98 +L75 +R64 +R972 +R628 +R781 +R442 +R77 +R64 +L95 +L39 +R870 +L266 +R12 +L40 +L96 +R90 +R16 +R9 +R75 +R19 +L19 +L91 +L31 +R47 +L45 +L96 +L84 +L43 +L18 +L20 +L19 +L10 +L90 +R82 +R66 +R70 +R139 +L57 +R120 +L61 +R41 +R78 +R23 +R944 +R5 +L77 +R27 +R94 +R76 +L970 +R47 +R42 +R74 +L831 +R928 +R612 +R28 +L81 +R53 +R28 +L76 +R93 +L117 +L78 +L22 +L1 +L66 +L746 +L55 +L161 +R47 +L72 +R54 +L382 +L64 +L58 +R26 +L73 +L54 +R59 +L54 +R65 +L28 +R63 +R43 +L60 +R923 +L70 +R13 +L87 +L62 +L63 +R51 +L95 +R94 +R44 +R969 +L675 +R275 +R32 +L532 +L64 +L36 +R47 +L58 +L251 +L38 +R29 +L40 +L667 +L622 +L90 +R72 +L74 +R192 +L567 +L70 +L63 +R302 +L66 +R71 +R93 +L55 +L45 +L85 +R485 +R58 +R789 +R53 +L95 +R19 +L59 +R6 +R29 +L242 +R99 +R48 +L51 +L26 +R72 +L391 +L429 +L3 +R23 +L96 +R96 +L62 +R62 +R9 +L9 +R42 +L97 +L45 +R483 +L8 +L75 +L87 +L50 +L37 +R72 +R232 +R170 +R38 +R62 +R326 +R15 +L221 +L49 +L87 +L84 +L83 +L465 +L25 +L27 +R45 +R41 +R66 +L59 +R7 +L91 +R43 +L450 +R32 +R39 +R76 +R51 +R567 +R16 +L690 +R7 +L78 +R78 +R71 +L71 +R438 +R62 +R26 +R786 +L112 +R63 +R1 +R36 +L26 +L429 +R58 +L35 +L715 +R47 +L879 +R95 +R9 +R75 +R49 +R51 +R999 +R33 +L99 +L49 +L63 +R79 +L974 +L22 +L304 +L43 +L33 +R18 +R49 +L959 +L16 +R84 +L89 +R89 +R56 +R90 +L46 +L21 +L79 +R71 +R215 +L86 +L919 +L208 +L973 +R76 +R419 +L141 +L54 +R392 +R114 +L6 +R34 +L74 +L60 +R22 +R78 +L91 +R21 +L75 +R45 +L33 +R96 +L957 +L99 +L15 +L58 +L873 +R660 +R43 +L16 +L48 +R58 +R16 +R610 +L36 +R52 +R65 +R63 +L98 +R687 +L1 +R26 +R55 +L97 +R89 +R645 +R66 +L54 +R74 +L33 +L69 +L16 +L91 +R89 +L74 +R39 +L265 +R81 +L89 +L971 +R86 +L53 +L6 +L248 +L43 +L970 +L79 +R66 +R26 +L59 +L141 +R65 +R35 +R64 +L64 +R130 +R52 +L78 +R5 +L75 +R7 +L341 +R437 +R63 +L83 +R56 +L72 +L1 +L61 +R61 +R860 +L60 +L361 +L39 +R641 +R59 +R92 +R699 +L17 +R928 +L2 +R18 +L2 +R536 +R85 +R631 +L99 +L90 +R301 +R64 +L44 +R19 +R81 +R27 +R19 +R60 +L6 +L47 +R83 +R57 +R87 +R74 +L82 +R28 +L54 +R54 +L604 +R4 +L74 +R34 +L849 +L11 +L393 +R93 +L16 +R42 +R25 +R849 +R34 +L70 +R36 +L28 +R53 +R898 +L45 +R96 +R13 +L386 +R75 +L149 +R73 +L75 +R34 +L62 +L51 +R6 +R739 +L46 +L9 +R792 +L28 +R949 +L13 +L29 +R98 +R475 +R58 +L38 +R167 +R733 +L71 +L29 +L980 +R222 +L42 +R21 +R32 +R47 +L882 +R82 +R930 +R70 +L18 +R92 +L28 +L21 +L59 +L91 +L75 +R63 +R532 +R5 +R49 +R151 +L408 +R708 +L176 +R57 +R383 +R91 +R29 +L469 +R34 +L49 +L39 +L79 +L290 +R8 +R82 +L77 +L5 +R9 +L37 +R936 +R92 +R61 +L61 +R950 +L910 +R338 +L78 +R58 +L58 +R32 +R31 +L63 +L9 +L81 +L10 +R95 +L95 +L312 +R638 +R70 +R4 +R1 +L95 +R623 +L27 +R32 +R66 +R89 +L434 +R86 +R38 +R73 +R48 +L48 +L86 +R334 +R95 +L318 +L77 +R39 +R61 +L73 +R673 +R24 +R518 +L342 +R74 +L858 +R53 +L11 +L499 +L52 +R7 +L14 +L40 +R78 +L38 +R26 +L174 +R55 +R94 +R26 +R41 +R232 +L895 +R91 +R68 +R75 +R14 +L53 +R665 +R24 +R33 +R73 +L95 +L77 +L23 +L87 +L33 +R68 +R59 +L7 +L45 +L38 +R99 +L16 +R327 +R73 +L780 +R3 +L23 +R421 +R46 +L90 +L66 +R95 +L6 +R52 +L73 +L61 +L92 +R74 +R19 +L3 +R59 +R2 +R66 +R69 +R88 +L38 +R38 +R89 +R24 +R31 +R27 +R29 +L78 +R16 +R314 +R88 +L73 +R15 +R331 +L71 +L42 +R77 +R7 +R22 +R94 +R43 +R43 +L10 +L85 +R294 +R48 +R63 +R71 +R33 +R66 +L66 +R26 +R38 +R39 +R90 +L13 +L980 +L384 +R208 +R27 +L28 +R77 +L9 +R72 +R249 +R21 +L927 +L6 +R16 +L54 +R638 +L31 +L6 +R37 +L743 +L426 +R69 +R138 +R62 +L53 +L35 +R90 +L2 +R39 +L97 +L11 +R85 +L9 +R5 +R88 +R27 +L64 +R483 +R54 +R63 +L58 +R95 +R88 +R12 +L251 +R497 +R54 +R95 +L95 +L3 +L14 +L58 +L593 +L44 +R99 +L87 +L41 +L59 +R146 +L44 +L30 +L28 +R991 +L35 +R63 +L86 +R23 +L91 +L61 +R52 +L61 +L39 +L55 +L94 +L11 +R79 +L9 +L54 +R66 +L62 +R840 +L91 +L58 +L96 +R5 +R60 +L920 +L354 +R929 +L94 +L71 +L10 +L366 +L48 +L86 +R981 +L69 +L40 +R28 +R713 +R287 +R7 +L70 +R63 +L51 +R30 +L79 +R36 +R53 +R90 +R21 +L81 +R12 +L42 +L37 +L52 +L93 +R252 +R41 +R60 +L78 +L378 +R96 +R60 +R3 +R31 +L94 +R72 +R28 +R79 +L79 +L90 +R124 +L34 +R59 +L59 +R823 +L62 +L277 +L70 +R86 +L18 +R18 +L23 +R23 +R74 +R226 +R50 +R65 +R85 +L60 +R60 +L130 +R191 +L61 +L731 +L65 +R91 +L995 +L743 +L57 +L52 +R96 +R56 +R28 +L68 +L6 +R67 +L53 +L23 +R55 +R5 +R92 +R21 +R15 +L2 +L78 +L29 +L17 +L7 +R30 +R70 +R48 +L23 +L55 +R16 +L8 +L78 +R14 +R19 +R818 +R49 +R85 +L85 +R72 +L40 +R15 +L60 +R13 +L46 +R546 +R34 +L32 +R1 +L5 +R2 +R569 +R59 +R86 +R10 +L24 +L24 +L76 +L717 +R66 +L42 +L60 +R53 +R6 +L21 +R54 +R53 +L42 +R64 +L14 +L89 +R13 +L30 +R98 +L92 +R94 +R95 +R45 +R866 +L1 +L15 +L84 +L23 +R49 +R74 +L926 +L64 +L185 +L25 +L10 +L29 +R68 +L29 +L20 +R20 +L758 +L53 +L89 +L73 +R50 +R23 +L572 +L32 +R78 +R64 +R86 +R342 +R295 +R39 +L35 +L49 +R84 +L10 +L88 +R98 +L26 +R726 +L41 +L117 +R64 +R594 +R37 +L68 +R570 +L877 +R77 +L39 +R78 +L878 +R432 +R36 +L68 +R44 +L8 +R93 +L91 +L54 +L41 +R57 +R32 +L58 +L62 +L62 +R911 +R79 +L71 +R564 +L33 +L38 +L89 +R270 +R312 +R36 +R61 +L87 +L34 +R882 +R164 +L77 +R79 +L60 +R96 +R31 +L746 +L226 +R26 +L96 +R96 +R41 +R77 +L933 +L85 +R22 +L10 +R28 +R60 +R36 +R52 +R66 +L10 +R56 +L8 +R5 +R3 +L571 +L29 +R67 +R66 +R634 +L253 +R84 +L45 +L48 +L24 +L2 +L79 +L754 +L846 +R84 +R140 +L29 +R33 +R45 +R34 +L928 +L79 +L985 +L92 +L23 +L75 +R39 +L94 +R93 +L71 +R62 +L6 +L48 +R70 +R37 +R8 +R85 +L87 +L912 +L1 +R872 +R824 +L596 +L11 +L89 +L84 +R558 +R26 +R82 +L25 +R43 +R60 +R40 +R90 +R22 +R592 +L81 +L345 +R910 +L88 +L34 +L13 +R47 +R11 +L87 +L78 +R54 +L721 +L582 +R3 +L82 +R72 +R55 +L88 +R43 +L22 +L40 +L62 +L331 +R10 +R45 +R96 +L895 +L1 +L57 +L43 +R195 +R5 +R83 +R886 +R11 +R20 +R137 +R25 +R38 +R17 +R16 +L92 +R19 +L73 +R83 +L70 +R79 +R21 +L38 +L762 +L45 +L72 +R11 +R6 +R3 +L24 +L40 +L39 +L68 +R91 +L77 +R43 +L82 +R93 +R981 +R893 +R46 +R86 +L35 +R54 +L25 +R54 +R383 +L64 +L73 +R129 +L29 +L63 +L39 +L643 +L3 +R58 +L87 +R92 +L15 +L59 +R40 +L81 +R29 +L29 +L82 +R92 +L610 +L47 +R98 +R274 +L425 +L91 +L64 +R6 +R82 +R59 +R8 +R33 +L87 +R754 +R80 +L80 +L69 +R89 +L3 +R14 +R88 +L19 +L856 +L41 +L30 +L96 +R457 +L34 +R36 +L36 +L48 +R24 +R14 +R10 +R155 +R45 +R67 +L58 +R91 +R19 +R37 +R44 +L936 +R50 +L314 +L46 +L62 +L171 +L21 +R11 +R69 +L40 +L58 +L82 +R20 +L3 +L59 +R69 +L27 +L46 +L91 +R53 +R64 +R27 +L7 +L28 +R28 +R881 +R99 +R57 +R87 +R49 +R127 +R77 +R702 +R21 +R97 +L288 +R43 +L391 +L361 +R52 +L72 +L16 +R20 +L13 +R1 +R58 +L91 +R45 +L679 +L415 +L82 +R43 +L51 +R30 +R81 +R89 +L86 +L40 +R26 +R327 +R73 +L39 +L7 +L62 +R8 +R6 +L6 +R88 +R12 +L31 +R31 +L46 +R8 +R32 +L94 +R555 +R45 +L425 +L75 +L596 +R19 +L24 +R74 +R27 +R75 +L890 +L85 +R69 +L69 +R43 +R64 +R92 +R1 +L20 +R20 +R40 +L15 +L25 +L43 +L63 +L294 +R90 +L805 +R67 +R4 +R44 +R516 +L37 +L652 +R56 +L83 +R349 +L97 +R65 +R37 +L893 +L524 +L37 +R870 +L60 +L282 +R75 +L469 +R739 +L90 +R86 +R31 +L932 +R27 +R60 +L54 +L202 +L39 +L60 +L831 +L38 +L74 +L86 +L71 +L50 +R10 +R40 +R78 +L71 +L27 +L67 +R56 +L8 +L61 +R74 +L74 +R52 +L91 +R39 +L14 +L86 +R24 +R47 +R51 +L31 +L91 +R70 +L68 +L78 +L23 +L44 +L57 +R18 +R11 +R71 +L83 +L17 +R21 +L57 +R78 +L86 +R44 +L20 +R68 +R99 +L45 +L13 +L89 +R25 +L65 +R89 +L610 +R17 +R555 +L28 +R17 +L135 +L65 +R18 +R57 +L75 +L584 +R268 +L99 +L485 +L60 +L14 +L68 +L58 +L11 +L89 +L7 +R91 +L62 +L97 +L25 +L585 +R984 +R75 +R26 +L45 +L68 +R21 +L67 +L741 +L80 +R28 +L6 +R90 +L971 +R339 +R56 +L97 +R28 +R13 +R9 +L54 +L53 +R98 +R502 +R19 +L5 +L56 +L60 +R18 +R482 +R17 +R93 +L63 +L19 +L35 +L93 +L69 +R43 +R126 +R14 +L14 +L22 +L25 +R22 +R25 +L197 +L3 +L91 +L75 +R75 +L46 +R237 +R70 +L24 +R346 +R8 +L556 +R77 +L454 +L80 +L550 +L229 +L8 +R23 +L23 +R37 +L37 +L2 +R2 +R14 +L914 +R41 +L44 +L97 +R26 +L15 +L47 +R98 +R33 +L92 +R83 +R2 +L88 +L9 +R9 +L34 +L848 +R82 +L647 +R88 +R86 +L29 +L61 +L937 +L57 +R257 +R221 +R288 +L109 +R70 +R30 +R64 +L64 +L309 +L6 +R715 +L407 +R81 +L8 +L11 +L72 +L67 +R54 +L59 +L54 +L51 +L63 +L43 +R8 +R67 +R25 +R718 +R27 +R55 +R49 +L43 +R43 +L949 +L7 +R224 +R43 +L60 +R47 +R76 +L972 +R49 +R3 +R97 +L430 +R30 +R94 +L91 +R97 +L13 +L40 +R22 +R72 +L65 +R726 +L47 +R74 +R71 +R735 +L35 +L71 +R69 +R102 +L80 +L83 +R7 +L44 +L362 +L38 +R13 +R57 +L70 +R433 +R67 +L1 +R27 +R14 +L240 +L35 +L65 +L93 +R93 +R7 +R34 +R59 +R36 +R84 +L20 +L69 +L87 +L2 +L979 +R62 +L172 +L53 +R124 +R33 +L22 +R65 +L8 +L11 +L78 +R51 +R95 +L6 +L10 +R28 +L49 +R3 +R85 +R87 +L87 +R54 +R11 +L29 +R32 +L668 +L75 +R75 +L6 +R92 +L56 +R89 +R78 +R10 +R93 +L40 +L471 +L78 +L13 +R83 +L353 +L97 +L731 +L66 +R10 +L44 +L84 +R36 +R48 +L405 +L58 +L13 +R26 +L85 +R60 +L23 +R98 +R48 +R88 +L63 +L890 +L847 +L47 +L84 +L28 +R16 +L93 +L84 +R84 +R73 +L76 +R3 +R52 +R764 +L33 +R44 +L27 +L40 +R657 +L17 +R50 +R50 +R87 +L87 +R52 +L450 +R898 +L46 +L92 +L49 +R65 +R80 +R74 +L70 +R38 +R81 +R619 +R36 +R964 +L64 +R79 +R73 +L99 +R65 +L85 +R31 +L509 +L191 +R31 +L845 +R14 +R86 +L793 +L93 +L18 +R18 +L702 +L164 +R8 +L53 +R11 +L76 +R11 +L35 +R95 +L95 +L10 +L45 +R76 +R79 +L52 +L97 +R549 +R24 +R25 +L91 +L58 +R76 +R73 +L49 +R189 +R11 +R41 +L12 +R63 +L794 +L30 +R79 +L25 +R335 +R97 +R46 +R101 +L70 +R31 +L62 +R342 +L114 +R672 +L48 +L31 +L22 +L99 +L176 +R58 +L3 +R9 +R91 +L58 +R27 +R52 +L381 +R46 +L65 +R96 +R609 +L5 +L69 +R56 +L39 +R83 +L31 +R34 +R162 +L49 +R14 +L225 +R82 +L88 +L829 +L2 +R1 +R85 +R21 +L22 +R73 +R43 +L21 +R63 +L90 +L52 +L98 +L16 +R38 +R76 +L92 +R92 +R479 +R62 +L27 +R41 +L231 +R76 +L356 +L26 +L518 +L14 +R114 +R60 +R40 +R336 +R67 +L952 +R49 +L24 +R66 +R758 +L806 +R6 +L662 +L55 +R35 +L18 +L22 +L68 +L10 +R560 +L60 +R85 +L65 +R67 +R47 +R67 +R14 +R58 +R27 +L97 +R367 +L78 +R50 +R74 +R27 +R921 +R25 +L62 +L169 +L72 +L88 +R2 +L165 +R68 +L67 +R20 +R13 +R498 +L67 +R112 +L1 +R189 +R57 +R25 +R69 +L557 +L70 +L624 +L37 +R37 +R40 +L76 +R68 +R76 +L1 +R13 +R80 +R74 +L48 +R16 +R18 +R89 +L49 +R311 +R208 +L37 +L729 +L835 +L19 +R1 +R919 +R81 +L69 +R769 +L52 +L56 +R88 +L20 +L585 +L75 +L35 +R704 +L207 +R238 +R59 +L39 +R73 +R662 +R72 +L17 +L10 +R69 +L35 +L34 +R81 +R21 +R98 +L24 +R324 +R20 +L20 +R70 +R30 +L38 +L35 +R73 +R42 +R52 +L28 +R48 +R274 +R63 +R23 +R58 +L32 +R809 +L9 +L95 +R507 +L12 +L785 +R85 +R71 +L71 +L24 +L76 +L98 +R98 +L566 +L87 +L47 +R20 +L20 +L10 +R10 +L97 +L65 +R16 +R46 +R39 +L39 +R7 +R93 +L68 +L32 +L76 +L37 +L18 +R83 +R3 +R88 +L53 +R81 +R89 +R20 +L46 +L965 +L869 +R78 +L49 +L35 +R41 +R62 +L879 +R82 +L32 +L86 +L82 +L24 +L60 +R62 +L78 +L16 +L91 +L93 +R807 +L7 +R62 +L74 +L62 +R874 +L32 +L68 +R66 +L344 +L24 +L77 +R79 +L55 +R85 +L30 +L61 +L24 +R44 +R780 +R964 +R7 +R79 +R71 +L92 +L16 +L64 +R12 +L56 +L30 +R43 +L706 +R61 +R288 +L69 +R669 +L70 +R40 +R30 +L30 +L629 +L53 +R202 +L73 +R528 +R98 +L137 +R46 +R728 +R7 +L87 +R690 +L51 +R708 +L7 +R60 +L35 +L65 +L10 +R210 +R17 +R58 +R86 +L62 +R19 +L356 +R21 +R17 +L63 +L37 +R608 +R70 +L51 +L27 +L85 +R20 +L35 +L42 +R42 +L42 +R35 +L6 +R13 +L91 +R91 +R739 +L496 +R59 +L10 +L36 +R84 +L92 +L48 +L102 +R33 +L31 +L93 +L90 +R65 +L42 +R60 +R49 +R191 +L70 +R336 +L11 +R5 +L480 +L214 +R94 +L2 +R2 +R53 +R747 +L45 +L55 +L569 +L94 +R31 +L68 +L78 +L22 +R40 +R60 +L289 +L14 +R4 +R17 +R82 +L30 +L70 +R27 +L42 +R65 +R66 +R84 +L342 +R242 +R18 +L91 +L503 +R76 +R93 +L893 +R30 +L719 +R83 +L23 +L19 +R51 +R97 +L75 +R575 +L27 +R727 +R50 +R85 +R546 +L15 +L59 +R93 +R53 +R18 +R29 +R19 +R91 +L52 +R684 +L11 +R42 +L73 +R7 +R1 +R92 +L45 +L973 +R48 +L68 +R4 +L66 +L50 +L23 +R73 +R99 +L22 +R784 +L61 +L656 +R14 +L58 +R6 +R94 +R87 +R28 +R85 +R20 +R80 +L19 +L81 +R50 +R50 +L9 +R509 +L55 +R55 +L70 +R32 +R85 +L47 +L52 +R15 +R391 +R2 +L960 +R74 +L70 +R897 +R64 +R43 +L4 +R81 +L57 +L34 +R1 +L91 +L78 +L83 +R98 +R72 +R91 +L17 +R50 +L7 +L26 +L79 +R64 +R57 +R58 +R74 +L51 +R77 +L91 +L20 +R11 +R15 +L15 +R26 +R74 +L412 +R78 +R49 +R56 +L258 +L65 +R52 +L95 +L22 +R17 +R43 +R42 +L99 +R37 +R77 +L430 +L38 +L43 +L89 +R62 +L62 +R10 +R46 +R44 +R651 +L959 +R508 +R56 +R742 +L13 +R15 +L99 +R27 +L213 +R620 +L42 +L478 +L3 +R88 +L23 +R23 +R206 +L870 +R64 +R108 +L8 +L31 +L69 +L966 +L34 +L55 +R955 +L56 +R11 +R75 +R70 +L217 +L83 +L97 +L39 +R684 +R82 +R4 +L17 +L17 +L612 +R12 +L240 +R40 +L16 +R18 +R98 +R66 +R45 +R68 +R35 +R86 +L97 +L26 +L17 +L48 +L82 +L94 +L2 +L76 +L58 +L99 +R182 +R35 +L47 +L37 +L426 +R54 +R517 +R73 +L552 +R484 +L84 +L42 +R73 +L96 +R19 +L54 +R68 +R47 +L52 +R37 +L44 +R570 +R99 +L7 +R82 +L405 +L16 +R39 +R4 +R79 +R99 +L57 +L343 +L87 +R817 +R89 +L12 +R93 +R95 +R58 +R47 +L90 +L10 +L506 +R41 +L35 +L95 +L23 +L585 +L80 +L266 +L154 +R263 +R87 +L79 +R32 +R7 +R29 +L667 +L65 +L230 +R26 +L76 +L24 +L69 +L31 +R159 +R741 +L156 +L87 +L85 +L77 +R85 +R5 +R43 +L28 +L47 +R168 +R79 +R86 +L33 +R96 +R81 +R70 +L80 +R87 +R205 +R55 +L64 +L503 +R41 +L11 +L30 +L50 +L69 +R19 +L17 +L146 +R84 +L53 +L73 +R77 +L869 +R97 +R51 +R66 +R14 +R63 +R6 +L28 +R47 +R81 +L28 +L49 +R68 +L591 +L20 +R20 +R79 +L43 +L70 +R66 +R11 +L243 +L7 +R7 +R851 +R313 +R36 +L73 +L994 +L34 +R932 +R87 +R20 +L53 +L85 +L92 +R18 +R1 +R73 +R16 +R90 +R94 +R67 +L82 +L47 +L35 +L68 +R481 +R84 +R58 +R94 +R48 +L83 +L17 +L61 +R61 +L743 +L1 +R873 +R771 +L27 +L673 +R36 +R64 +R563 +L33 +L96 +L834 +R86 +R720 +L93 +L592 +R79 +R17 +R181 +L84 +R86 +R62 +L62 +R355 +L403 +R48 +R93 +R86 +L35 +R3 +R54 +L27 +L74 +L726 +R93 +L524 +L10 +R67 +L28 +R546 +R82 +L54 +R93 +R61 +R51 +L38 +L713 +R37 +L61 +L76 +R38 +L35 +L31 +R109 +L356 +L75 +L50 +R46 +R54 +L42 +R42 +L98 +L2 +L80 +R980 +R65 +L461 +R24 +R67 +R5 +R42 +R58 +R17 +R81 +R74 +R12 +R64 +L446 +L47 +R84 +R88 +L27 +L76 +R976 +R40 +R304 +R667 +L39 +L72 +L19 +L66 +L48 +L47 +R70 +R676 +R41 +L24 +R17 +L148 +R10 +R38 +L97 +R26 +R95 +L24 +L484 +L170 +L818 +R48 +R208 +L12 +L72 +R75 +R63 +L66 +L72 +R45 +R55 +L12 +R12 +R60 +R40 +L7 +L60 +L20 +R87 +L74 +R97 +R390 +R87 +L15 +L5 +L90 +R10 +R49 +L69 +L42 +L38 +R44 +L1 +R640 +L77 +L72 +L8 +R852 +L78 +R2 +R98 +L415 +L66 +R81 +R27 +L27 +R999 +L61 +L589 +L49 +R68 +L81 +L31 +R26 +R64 +L91 +R85 +R98 +R424 +L53 +R79 +R12 +R592 +R108 +L60 +L940 +R3 +L956 +L147 +R24 +R93 +R28 +L245 +L129 +L271 +L98 +L2 +R5 +L323 +R68 +R50 +L360 +R60 +R21 +R32 +R64 +R16 +L76 +L57 +R40 +R60 +R42 +R92 +R66 +L14 +R29 +L38 +R44 +R58 +L16 +L5 +L58 +L956 +R21 +L65 +L710 +R10 +R19 +R81 +R83 +R34 +L64 +L653 +L928 +L72 +R33 +R29 +R238 +L4 +L79 +L29 +L33 +R73 +L86 +L6 +L70 +R44 +L25 +L82 +R64 +L1 +L395 +R96 +R333 +L11 +L14 +L74 +R28 +R145 +L5 +L669 +R94 +L94 +R61 +L69 +R979 +R29 +R126 +L926 +L27 +L73 +L651 +R14 +R65 +L340 +R212 +L60 +R498 +L27 +R70 +L81 +L63 +L66 +L71 +R4 +R956 +L28 +R21 +R69 +L21 +R64 +R65 +L41 +L9 +R98 +L78 +L13 +L563 +L588 +L36 +L62 +L38 +L78 +R78 +L19 +R68 +R51 +L920 +R20 +R625 +R75 +R94 +L46 +R42 +R64 +L454 +L81 +L19 +L262 +L189 +L49 +R90 +L8 +R18 +R8 +R292 +R17 +L6 +R46 +R543 +L42 +L1 +L8 +R51 +L61 +R36 +R61 +L36 +L9 +R51 +L26 +L4 +R55 +L59 +R392 +L78 +L426 +L641 +R88 +R57 +R7 +R93 +R64 +R36 +L30 +R180 +R36 +R14 +R63 +R74 +R11 +R80 +L44 +L36 +L948 +L82 +L18 +R4 +R582 +R6 +L519 +L73 +L30 +L17 +L7 +L301 +L45 +R41 +R56 +L76 +L7 +R44 +L58 +L67 +R67 +L27 +L54 +R81 +L13 +L18 +R845 +L3 +R14 +R19 +L40 +R309 +R87 +L90 +R84 +R18 +R9 +L65 +L56 +L13 +L3 +L84 +L20 +L71 +L49 +L74 +L86 +L52 +L67 +R120 +L61 +R60 +L9 +R9 +L85 +R85 +R735 +R65 +R60 +L43 +R28 +R42 +L587 +R82 +L1 +L81 +R335 +L233 +R798 +R29 +R95 +R18 +R558 +R97 +R3 +R879 +L53 +R42 +L68 +R75 +R24 +R67 +R34 +R187 +L217 +L84 +R845 +L31 +R18 +R864 +L82 +R50 +L25 +R14 +R15 +R199 +R50 +L3 +R321 +R60 +L49 +L32 +R99 +R1 +R48 +R21 +L69 +R55 +R923 +L50 +R56 +R98 +L282 +R77 +L965 +L792 +R680 +R86 +L13 +R27 +L43 +L23 +L58 +R45 +R79 +L46 +L354 +R37 +R53 +R710 +L69 +L12 +L819 +R65 +R42 +L7 +L817 +L5 +R22 +L85 +R62 +L21 +L56 +R25 +R14 +R461 +R43 +L42 +L599 +L16 +R84 +L328 +R97 +L39 +R351 +L51 +R66 +R172 +R762 +L10 +R57 +R46 +R334 +R73 +L84 +R405 +L21 +R27 +L84 +R47 +R46 +L3 +L547 +R14 +R16 +L81 +L40 +R77 +L38 +R86 +R10 +L230 +R73 +R27 +R70 +L70 +R48 +L48 +R92 +L992 +L30 +L670 +R517 +R305 +R78 +R30 +R356 +R14 +R97 +L97 +L22 +L44 +L733 +L34 +R14 +R802 +R17 +L52 +R52 +R52 +R95 +L13 +R62 +L7 +L708 +R57 +R3 +R78 +L519 +R55 +R9 +L464 +R65 +R409 +R90 +R1 +L828 +R57 +L54 +R447 +L59 +L84 +R1 +L45 +L53 +R414 +R6 +R90 +R117 +R32 +L40 +L88 +R720 +R2 +R54 +L47 +L7 +L26 +R6 +L80 +L26 +R87 +R94 +R29 +L80 +R96 +L46 +L49 +R52 +R29 +L86 +L47 +R734 +R13 +L508 +L92 +L53 +L49 +L98 +L568 +R68 +L81 +L19 +R92 +R689 +R29 +R90 +R97 +L51 +L514 +R868 +R565 +L324 +L41 +L4 +R21 +R933 +L91 +L71 +L278 +L3 +L11 +R3 +L85 +L624 +R23 +L13 +R3 +L14 +L97 +R86 +R95 +L22 +R155 +R621 +L827 +L288 +R88 +L84 +L16 +L630 +R30 +R14 +L28 +R14 +L65 +R465 +L74 +L21 +R88 +R7 +R27 +L427 +L519 +L62 +L19 +L50 +L58 +R883 +R19 +L35 +R13 +R44 +L43 +L24 +L49 +L61 +L203 +R64 +R71 +L71 +L37 +L691 +L72 +R615 +L15 +R42 +L42 +L23 +R56 +L95 +R87 +L25 +L953 +L40 +R56 +R637 +L9 +R54 +L245 +L85 +L67 +L27 +L97 +L838 +L951 +L35 +R45 +R7 +R48 +R173 +R27 +R830 +L230 +R76 +R24 +R858 +L58 +R994 +R725 +R92 +L44 +R33 +R41 +L159 +L67 +L69 +L46 +R80 +L79 +L46 +L26 +R84 +R66 +L79 +L59 +R59 +L809 +L21 +R30 +R40 +L69 +R29 +R991 +L642 +L644 +R91 +L96 +R66 +L66 +L17 +R39 +R78 +L17 +L31 +L12 +L16 +R76 +L19 +L14 +R33 +R969 +R31 +R34 +L49 +R49 +R13 +L15 +R50 +L82 +L73 +R73 +R82 +R658 +L40 +L2 +L141 +R32 +R34 +L3 +L83 +R18 +L55 +L23 +R91 +L48 +L59 +L461 +R49 +L10 +L429 +R90 +R94 +R51 +L45 +L36 +R36 +R79 +R99 +R22 +L12 +R160 +R86 +L234 +L96 +R95 +L767 +L48 +R17 +L29 +L23 +R51 +R68 +R946 +R2 +R484 +R95 +R5 +L12 +L88 +L80 +L320 +R6 +L191 +L70 +R47 +R22 +L21 +R68 +R70 +R69 +L571 +R871 +R36 +R73 +R91 +L74 +L95 +L62 +L96 +R35 +R68 +L76 +L1 +R1 +R34 +L35 +R701 +L17 +R42 +L25 +L16 +R969 +R84 +L7 +R6 +R64 +R84 +R16 +L51 +R6 +L213 +R8 +R50 +R32 +R68 +R154 +L54 +L8 +R73 +R46 +R689 +R15 +R38 +R67 +R38 +R742 +L209 +R9 +R26 +L106 +R62 +L89 +R7 +R637 +R40 +L99 +L89 +R5 +L61 +L548 +R236 +L821 +L58 +L74 +L68 +L99 +L8 +L607 +L85 +R20 +R89 +R31 +L169 +L72 +R58 +R82 +R391 +R869 +R31 +R44 +L5 +R35 +R79 +R116 +L98 +R48 +R203 +L53 +L78 +R78 +L651 +L60 +R6 +L95 +L66 +L34 +L191 +R808 +R83 +L29 +L71 +L26 +R34 +L7 +R99 +L36 +R26 +R99 +R11 +R47 +L63 +L4 +R4 +L84 +L94 +R94 +R778 +R36 +L11 +L379 +R76 +L31 +R72 +L641 +R292 +L92 +L32 +L62 +L6 +L6 +L72 +R77 +L55 +L42 +L4 +R51 +L676 +L41 +L78 +R8 +R78 +R4 +L463 +L62 +L40 +L41 +R62 +R46 +R483 +R71 +L29 +R69 +R89 +R84 +L13 +R77 +R90 +L57 +R44 +R17 +L49 +R31 +L353 +R76 +R24 +R906 +R57 +R47 +L13 +L43 +R72 +L64 +L62 +R74 +R12 +R91 +R23 +L73 +R52 +L12 +L88 +L57 +L64 +R99 +R43 +L25 +R825 +R55 +R45 +L68 +L32 +R30 +R70 +R84 +L3 +R19 +R90 +R947 +R63 +R130 +R70 +L728 +L28 +R74 +L83 +R87 +R78 +R50 +L169 +R19 +R19 +R181 +L2 +L25 +L3 +R58 +R81 +R45 +R24 +R334 +R17 +L22 +L658 +R518 +R40 +R35 +L14 +R13 +L95 +R542 +L88 +R76 +L95 +L14 +L59 +R57 +L56 +L932 +R74 +L53 +R42 +R36 +R92 +L91 +R23 +R94 +L7 +L387 +L46 +R71 +L29 +R50 +L46 +R249 +L57 +L92 +L92 +R92 +R22 +R41 +L263 +L43 +L57 +R64 +L15 +L51 +R2 +R17 +R28 +R30 +R61 +L536 +R698 +L40 +L58 +L51 +L25 +L78 +R88 +R266 +L660 +L85 +L43 +L31 +L83 +L55 +L97 +R36 +R18 +L16 +L84 +R25 +R10 +R65 +L48 +R79 +R69 +L63 +R26 +R33 +L87 +R681 +L90 +L2 +L42 +L9 +R46 +R40 +R7 +L40 +R44 +L34 +L51 +R93 +L49 +R30 +L508 +L35 +R289 +R86 +R64 +R393 +R66 +R12 +L68 +R961 +L67 +L945 +R19 +L26 +L30 +R56 +R680 +L8 +L96 +R2 +R93 +R29 +L67 +R96 +L23 +R40 +L62 +R766 +R55 +L105 +L77 +L23 +L48 +L92 +R87 +R53 +L717 +L28 +L55 +R8 +R1 +R91 +L97 +L4 +L89 +R73 +R62 +L85 +L855 +L166 +L39 +L981 +L19 +L23 +L80 +R13 +R11 +R79 +L42 +R39 +L97 +R62 +R311 +R36 +L9 +R56 +L71 +L130 +R43 +R2 +L534 +R134 +R27 +R595 +R78 +L201 +L31 +R60 +L28 +L976 +R65 +R699 +R12 +R68 +R859 +R73 +R65 +R229 +L58 +L7 +L20 +R611 +L20 +L96 +L17 +L87 +R87 +L87 +R43 +R47 +R410 +L62 +L896 +L842 +L54 +R24 +L84 +L682 +R596 +R47 +R676 +L89 +R3 +L637 +L78 +L2 +R80 +R144 +L74 +R21 +L21 +L463 +R580 +L15 +L56 +R84 +R47 +R82 +L29 +R65 +R59 +R115 +L81 +L647 +R283 +R774 +L76 +L92 +L92 +R92 +L477 +L23 +L49 +R73 +R75 +R1 +R34 +L34 +L79 +R2 +L78 +R667 +R88 +L51 +L849 +L716 +R16 +R1 +R81 +R18 +R71 +L399 +R52 +L24 +R83 +R16 +L847 +R21 +L73 +R87 +R31 +R28 +L46 +L341 +R616 +L75 +L85 +R903 +L3 +R85 +R41 +L41 +R53 +R44 +R3 +L56 +L66 +R52 +R82 +R16 +L28 +L84 +L35 +R19 +R24 +R568 +R8 +R9 +L92 +L40 +L246 +R77 +L8 +R75 +R27 +L41 +L521 +R110 +L6 +L44 +L73 +R73 +L890 +L116 +R49 +L43 +L1 +L78 +R25 +R54 +R39 +R93 +L69 +R233 +R25 +L22 +L999 +R19 +R85 +L4 +L92 +L8 +R106 +R81 +R394 +R899 +L792 +R12 +R48 +R152 +L44 +R744 +L90 +L9 +R93 +R30 +R54 +R61 +L86 +R18 +L71 +L34 +R34 +R63 +R37 +R82 +R18 +R36 +R91 +L98 +L29 +R17 +R83 +L40 +R139 +R2 +L84 +L69 +L48 +R14 +R229 +L943 +L339 +R56 +R81 +R8 +R355 +L329 +R137 +L77 +R8 +L51 +R59 +R47 +R645 +L61 +R10 +L49 +R715 +L15 +L72 +R11 +R61 +R65 +R54 +R3 +R51 +R66 +L15 +L69 +L856 +L713 +R97 +L83 +R92 +L31 +L61 +L78 +L13 +L281 +R99 +L27 +R489 +R11 +L78 +R20 +R91 +R71 +R82 +L386 +R98 +R33 +L31 +L68 +L32 +L679 +L45 +L76 +R781 +L81 +L61 +L7 +R59 +R830 +L21 +R17 +L19 +R92 +L441 +L49 +L49 +R24 +L75 +L74 +R32 +R70 +L301 +L239 +L64 +R76 +R31 +R69 +R733 +L73 +R54 +L40 +R49 +R77 +R93 +L93 +R93 +R58 +L45 +L36 +L20 +R58 +R92 +L27 +R94 +R33 +L50 +R91 +L41 +L29 +R29 +R1 +R20 +R79 +L84 +R91 +R28 +L35 +L98 +R98 +L52 +R78 +R74 +R27 +R73 +R51 +R14 +L65 +L48 +R28 +L43 +L19 +L18 +R34 +R66 +R65 +R7 +R53 +L25 +R73 +R49 +R12 +L18 +L29 +L45 +L3 +L14 +R6 +L38 +R8 +L49 +L1 +L3 +L5 +R35 +L25 +R25 +L22 +L4 +L26 +L39 +L38 +L7 +R44 +L36 +R6 +R6 +R2 +L49 +R40 +R35 +L25 +R22 +L40 +L15 +L37 +R9 +R43 +L45 +L42 +R20 +R34 +L34 +L37 +L37 +R37 +R19 +R37 +L48 +L27 diff --git a/day_1/solution1.py b/day_1/solution1.py new file mode 100644 index 0000000..9d997d0 --- /dev/null +++ b/day_1/solution1.py @@ -0,0 +1,39 @@ +class Dial: + value = 50 + reached_zero = 0 + + def CrankLeft(self, clicks): + self.value -= clicks + if self.value < 0: + self.value = abs(self.value % int(100)) + if self.value == 0: + self.reached_zero += 1 + + def CrankRight(self, clicks): + self.value += clicks + if self.value > 99: + self.value = abs(self.value % int(100)) + if self.value == 0: + self.reached_zero += 1 + + def PrintValue(self): + print(self.value) + + def printSolution(self): + print( f'The dial reached zero {self.reached_zero} times') + + +MyDial = Dial() +file = input("enter input file:") +with open(file) as f: + for line in f: + ticks = int(line[1:-1]) + if line[0] == 'L': + print("Crank Left") + MyDial.CrankLeft(ticks) + elif line[0] == 'R': + print("Crank Right") + MyDial.CrankRight(ticks) + MyDial.PrintValue() +MyDial.printSolution() + diff --git a/day_1/solution2.py b/day_1/solution2.py new file mode 100644 index 0000000..3ebc8f0 --- /dev/null +++ b/day_1/solution2.py @@ -0,0 +1,41 @@ +import math +class Dial: + value = 50 + reached_zero = 0 + + def CrankLeft(self, clicks): + self.value -= clicks + if self.value < 0: + self.value = abs(self.value % int(100)) + if self.value == 0: + self.reached_zero += 1 + + def CrankRight(self, clicks): + self.value += clicks + if self.value > 99: + self.value = abs(self.value % int(100)) + if self.value == 0: + self.reached_zero += 1 + + def PrintValue(self): + print(f'Dial at {self.value}') + + def printSolution(self): + print( f'The dial reached zero {self.reached_zero} times') + + +MyDial = Dial() +file = input("enter input file:") +MyDial.PrintValue() +with open(file) as f: + for line in f: + ticks = int(line[1:-1]) + if line[0] == 'L': + print(f'Crank Left {ticks}') + MyDial.CrankLeft(ticks) + elif line[0] == 'R': + print(f'Crank Right {ticks}') + MyDial.CrankRight(ticks) + MyDial.PrintValue() +MyDial.printSolution() + diff --git a/day_1/testinput.txt b/day_1/testinput.txt new file mode 100644 index 0000000..9db3fc6 --- /dev/null +++ b/day_1/testinput.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82