From 97be9743f1070583c94156a2d775353926c19ef4 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 1 Dec 2025 21:58:29 -0600 Subject: [PATCH 1/9] initial --- Problem1.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Problem1.java diff --git a/Problem1.java b/Problem1.java new file mode 100644 index 0000000..59bb7a1 --- /dev/null +++ b/Problem1.java @@ -0,0 +1,5 @@ +public class Problem1 { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} \ No newline at end of file From 39b97e1e672614981f03ce7072ee679cf6335e99 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 1 Dec 2025 22:16:06 -0600 Subject: [PATCH 2/9] solved 1 --- Problem1.java | 46 +- inputs/inputProblem1.txt | 4543 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 4588 insertions(+), 1 deletion(-) create mode 100644 inputs/inputProblem1.txt diff --git a/Problem1.java b/Problem1.java index 59bb7a1..efe6010 100644 --- a/Problem1.java +++ b/Problem1.java @@ -1,5 +1,49 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.util.ArrayList; + public class Problem1 { + public static void main(String[] args) { - System.out.println("Hello, World!"); + ArrayList allLines = new ArrayList<>(); + + try (BufferedReader reader = new BufferedReader(new FileReader("inputs/inputProblem1.txt"))) { + String line; + while ((line = reader.readLine()) != null) { + allLines.add(line); + } + } catch (Exception e) { + e.printStackTrace(); + } + + // Call solve and print result + System.out.println(solve(allLines)); + } + + public static int solve(ArrayList allLines) { + int dial = 50; + + int total = 0; + + for (String line : allLines) { + int value = Integer.parseInt(line.substring(1)); + if (line.charAt(0)=='L'){ + System.out.println("Turned Left: " + value); + dial -= value; + } else { + System.out.println("Turned Right: " + value); + dial += value; + } + + int num = (dial % 100 + 100) % 100; // Ensure num is between 0-99 + System.out.println("Current Dial Position: " + num); + + if (num == 0) { + total++; + } + + } + + return total; } } \ No newline at end of file diff --git a/inputs/inputProblem1.txt b/inputs/inputProblem1.txt new file mode 100644 index 0000000..2de2b86 --- /dev/null +++ b/inputs/inputProblem1.txt @@ -0,0 +1,4543 @@ +R20 +R10 +L11 +R45 +R13 +R32 +R46 +L20 +L1 +L26 +L33 +L6 +L34 +R50 +L41 +L8 +R16 +L20 +L39 +R40 +R30 +R47 +R20 +L44 +R16 +L1 +R50 +L23 +R32 +L2 +L1 +L10 +L28 +R13 +R46 +R39 +L17 +R44 +R24 +R32 +R18 +L41 +R11 +L48 +R7 +R1 +L21 +R37 +L43 +L71 +L50 +R84 +L36 +R66 +L64 +L5 +R34 +R32 +L61 +L14 +R83 +L69 +R94 +R17 +L11 +L63 +L37 +L25 +R70 +R48 +L1 +R5 +R29 +R87 +L49 +L96 +R88 +L56 +L76 +R37 +L73 +R49 +L93 +R56 +R79 +L79 +R85 +L79 +R70 +R24 +R38 +L88 +R46 +R76 +L72 +R64 +R83 +R53 +L36 +R38 +R41 +L60 +L234 +L35 +R948 +L176 +L86 +R97 +L52 +L31 +R65 +L513 +R234 +L47 +L84 +R38 +R93 +R43 +L43 +R36 +R64 +R47 +L84 +R637 +L39 +L528 +L48 +R54 +R21 +L431 +R371 +R92 +L601 +R65 +R44 +L401 +R57 +L320 +L924 +R88 +L2 +R2 +R52 +R45 +R12 +L9 +R26 +R937 +R74 +R63 +R44 +L86 +R342 +R72 +R438 +R41 +R20 +L71 +L64 +R44 +R27 +R10 +R83 +L96 +L501 +L303 +R83 +L83 +R57 +L89 +R60 +L10 +L18 +L78 +R23 +L819 +R18 +L68 +R93 +L65 +L22 +R64 +L346 +R74 +L97 +L77 +R90 +R99 +L89 +L358 +L24 +L18 +R19 +R902 +R18 +R42 +L16 +L67 +R7 +L61 +L44 +R58 +R56 +R86 +R77 +L197 +L48 +R276 +L82 +L65 +L45 +L44 +R12 +R835 +L719 +R47 +L35 +R988 +R6 +L92 +L196 +R82 +R36 +R95 +R69 +L52 +L17 +L531 +R13 +R87 +L69 +L31 +L17 +L66 +R83 +R10 +R85 +R5 +R543 +L1 +R55 +L646 +L47 +L50 +R7 +L719 +R673 +R85 +R399 +L13 +R86 +L60 +R788 +L605 +R5 +R872 +R24 +R54 +R86 +L47 +R74 +L63 +L72 +L28 +L579 +R81 +R98 +R79 +L1 +R722 +L48 +R6 +R41 +L99 +L26 +R26 +R64 +R50 +R88 +R520 +R57 +L779 +R83 +L71 +R399 +R89 +R92 +R68 +R940 +L44 +R44 +L151 +R15 +R70 +R566 +R79 +R6 +L85 +R958 +R79 +L54 +L42 +L159 +R52 +L93 +R50 +R48 +R83 +R78 +L36 +R36 +L77 +R77 +R24 +L61 +L12 +L19 +L232 +R36 +L36 +R12 +L85 +L27 +R65 +L65 +L16 +L51 +R67 +L78 +L87 +R71 +R94 +L217 +R11 +R779 +L98 +L68 +R14 +R16 +L95 +L42 +R80 +L830 +R50 +L51 +R51 +R93 +L438 +L783 +L28 +L44 +L64 +L45 +R809 +L26 +L274 +L56 +R97 +L88 +R75 +R4 +R3 +L27 +L12 +R4 +R41 +R8 +L46 +R85 +L888 +R47 +L8 +R824 +L67 +R58 +L177 +R723 +R44 +R56 +R70 +R30 +R97 +R43 +L39 +R99 +L78 +L196 +L87 +L39 +R42 +L528 +R86 +R20 +L920 +R916 +L16 +L19 +L92 +L17 +R38 +R43 +R90 +L57 +L58 +R72 +L54 +L26 +L9 +R66 +R41 +R74 +L86 +L6 +L39 +L72 +L5 +R17 +R99 +L3 +L50 +R7 +L56 +R2 +R15 +R18 +L60 +L73 +L980 +L20 +L69 +L31 +L998 +L16 +R29 +L15 +L136 +L71 +R7 +R59 +L19 +L40 +L56 +R60 +L97 +R93 +R87 +L587 +L1 +R1 +R99 +R5 +L4 +L89 +L70 +L62 +L559 +L50 +R88 +L58 +R23 +R77 +R406 +R22 +L28 +L455 +R55 +R15 +R43 +R62 +R686 +L6 +R19 +L19 +R44 +R34 +R40 +L348 +L294 +R92 +L342 +L92 +R918 +R48 +L24 +L76 +L865 +L59 +R13 +L89 +L6 +L79 +L105 +L71 +L39 +R226 +R274 +L35 +R61 +R33 +R5 +L64 +L88 +R24 +L731 +R53 +L58 +L87 +L85 +R72 +R67 +R4 +R86 +L288 +R721 +R87 +L77 +R88 +R14 +R98 +L744 +L656 +R81 +L81 +L93 +L974 +L25 +L453 +R31 +L14 +L72 +R43 +R45 +R18 +L881 +L25 +R82 +L184 +R99 +L181 +L55 +R39 +R80 +R320 +R686 +R6 +R64 +R483 +R22 +R19 +R88 +R73 +L33 +L8 +R89 +L89 +R13 +R32 +L45 +L72 +L93 +L535 +R36 +R24 +R47 +R593 +R25 +L72 +R447 +R17 +L17 +R23 +R1 +R53 +R23 +L75 +L95 +L13 +R5 +R18 +L13 +L6 +L21 +R64 +L304 +L160 +L509 +R509 +L98 +R579 +R19 +R76 +L7 +R331 +L99 +L1 +L222 +R72 +R50 +L8 +L88 +R96 +L84 +R84 +R690 +R37 +L27 +R452 +R80 +L43 +L85 +R96 +R10 +R33 +R57 +L70 +L30 +R19 +L183 +R52 +L349 +R888 +L27 +L821 +L18 +L66 +L95 +R23 +R977 +L18 +L811 +R47 +L18 +L76 +L24 +L78 +L22 +L29 +R29 +L42 +R22 +R96 +L76 +L47 +R47 +R128 +L28 +L56 +R56 +L82 +L48 +L50 +R88 +L916 +L9 +R1 +L32 +R48 +L356 +L85 +R51 +L70 +R24 +L98 +R34 +R124 +L58 +R60 +R526 +R948 +L90 +L68 +L42 +R972 +R28 +R23 +R77 +L83 +L637 +R52 +L132 +R57 +L957 +L88 +R88 +L179 +L921 +R10 +R90 +L12 +L88 +R2 +R98 +R956 +R44 +L4 +R59 +L55 +R89 +L51 +L41 +R54 +R55 +L6 +L27 +R27 +L53 +L47 +L98 +L228 +R35 +R11 +R35 +R33 +R12 +R39 +L238 +L1 +L94 +R51 +R543 +R15 +L937 +R92 +R20 +L12 +R21 +R87 +R14 +R45 +L745 +R70 +R59 +L52 +R31 +L8 +L7 +L898 +L78 +R83 +L6 +L88 +L260 +L413 +L76 +L98 +L359 +R19 +L51 +L68 +R76 +R424 +L23 +R75 +L249 +L3 +R63 +L263 +L21 +R21 +R75 +L915 +L60 +R147 +L63 +R48 +L95 +L931 +R94 +L86 +R32 +L46 +L26 +R43 +R813 +L30 +R71 +L70 +L1 +L51 +R16 +L855 +L360 +R60 +L26 +L8 +L559 +R183 +L21 +L72 +L7 +L195 +L72 +R67 +L63 +R63 +L7 +L66 +L727 +R55 +L66 +L889 +L68 +R25 +L321 +R7 +R48 +R59 +R60 +L72 +R19 +L57 +R59 +L56 +L28 +L186 +R11 +L53 +L342 +L50 +R4 +R41 +R2 +L8 +R906 +R6 +R42 +R60 +L90 +R82 +R24 +L60 +L64 +R50 +L50 +L3 +R85 +R68 +L850 +R74 +L93 +L614 +R55 +L22 +L52 +L2 +R6 +L201 +L18 +R81 +L514 +R61 +L77 +L955 +R71 +R47 +R78 +R375 +L760 +R60 +R54 +R395 +L55 +L94 +R794 +L94 +R47 +R44 +R402 +L42 +R564 +R85 +L18 +L99 +R12 +R63 +R7 +L65 +R83 +L36 +L47 +R267 +L58 +L9 +L97 +R41 +L44 +L55 +R55 +L58 +R6 +L61 +L187 +R66 +R41 +L64 +L88 +R5 +R63 +R42 +R509 +R77 +R540 +R98 +L51 +R99 +R63 +L62 +L66 +R28 +L96 +R56 +L20 +L40 +R17 +L282 +R65 +L8 +R8 +L15 +R15 +R38 +R84 +R78 +R73 +R27 +R32 +R59 +L10 +R19 +R49 +R51 +R89 +L55 +L65 +R76 +L6 +R11 +R50 +R99 +L36 +R37 +L7 +L614 +L25 +R31 +L585 +R56 +R36 +L92 +L56 +L383 +L79 +R55 +R63 +L52 +L748 +L41 +R860 +R82 +L98 +R897 +R75 +R26 +R1 +L81 +R17 +R760 +R31 +R9 +R62 +R43 +R43 +L82 +R96 +R3 +R76 +L79 +R87 +L334 +R84 +R14 +R30 +L81 +R2 +L788 +R86 +R74 +R26 +L941 +L4 +L55 +R8 +L478 +R20 +R83 +R19 +R48 +R69 +L488 +L44 +R55 +L92 +L78 +L75 +L47 +L95 +R62 +L234 +R67 +R70 +L35 +L40 +L13 +L32 +L950 +R59 +R62 +R275 +R4 +R672 +R93 +L6 +R23 +L382 +L278 +R110 +R68 +R35 +R43 +R96 +R604 +R408 +R14 +R108 +R33 +R59 +L19 +R19 +R85 +R24 +R15 +R14 +R62 +L49 +R83 +L551 +R17 +L4 +L63 +R38 +R95 +R34 +R59 +L695 +R636 +R19 +L98 +L30 +L691 +L147 +R8 +R9 +R732 +L2 +L47 +L53 +L64 +L36 +R24 +R40 +R99 +R27 +R410 +R83 +R14 +L524 +R27 +R72 +L64 +R92 +R69 +R323 +R49 +R56 +R3 +L54 +L81 +R82 +L47 +R28 +R96 +L6 +L653 +L36 +R413 +L19 +R15 +L352 +L26 +L63 +R622 +R13 +L51 +L81 +L68 +L32 +L55 +R55 +L98 +R49 +L54 +R48 +R46 +R9 +L34 +L15 +L19 +R273 +R695 +R43 +R492 +R38 +L473 +L13 +L89 +L83 +L5 +R90 +R68 +L706 +R106 +R8 +R84 +R30 +L190 +R91 +L55 +R64 +R85 +L85 +L57 +L17 +R74 +L82 +R82 +R826 +L37 +L32 +L36 +L66 +L21 +R82 +L16 +L27 +R77 +R46 +L989 +R9 +L63 +R47 +L89 +L76 +L740 +L49 +L46 +L52 +R86 +R8 +L85 +L27 +L430 +R40 +L40 +R34 +L34 +L89 +L41 +R98 +R32 +R31 +L13 +R553 +L71 +R20 +L948 +R28 +L86 +R186 +R5 +L5 +R96 +R59 +L55 +L32 +R26 +L70 +L24 +L677 +L244 +R13 +L92 +L999 +L97 +R96 +L606 +R6 +R4 +L4 +R47 +L30 +R83 +L141 +R947 +L78 +L913 +L15 +R68 +R7 +L75 +L18 +L82 +R15 +L73 +L42 +L13 +L684 +R97 +R47 +R53 +R24 +R38 +R23 +L51 +R39 +L73 +R35 +R22 +R14 +L71 +L47 +R58 +L30 +L81 +R28 +R731 +L27 +L38 +R6 +R96 +L51 +R55 +R65 +L49 +L1 +L95 +L534 +L86 +L40 +L42 +L70 +R50 +L98 +L59 +L95 +L35 +L9 +R16 +R682 +L997 +R218 +R530 +L48 +L551 +R48 +L43 +R43 +L80 +L792 +R29 +L22 +L82 +L76 +L52 +R75 +L29 +R71 +R593 +L39 +L596 +R71 +R89 +L27 +L33 +L77 +R59 +L76 +R67 +L426 +L389 +R90 +R74 +L22 +L49 +R101 +L52 +R34 +L69 +L13 +R92 +R810 +R688 +R58 +R614 +L14 +R77 +L47 +R70 +L40 +R840 +R91 +R54 +R14 +L258 +R99 +R84 +R67 +R62 +L64 +R48 +L197 +L20 +L74 +R74 +L880 +R10 +R55 +R35 +R68 +L774 +L44 +R875 +R63 +R807 +R13 +R92 +L392 +L74 +L34 +L66 +R44 +R120 +R802 +L29 +R6 +R23 +L492 +L8 +R83 +R80 +L5 +R42 +R92 +R77 +R24 +R77 +L2 +R32 +L12 +L88 +R97 +L85 +R88 +R57 +L957 +L68 +L40 +R56 +R452 +R47 +L47 +L610 +L90 +L92 +L808 +L62 +R94 +L20 +L68 +L17 +L177 +R563 +L13 +L89 +R71 +L282 +L41 +R548 +R87 +R26 +L92 +R695 +R67 +L10 +R20 +L81 +R37 +R44 +R317 +R83 +R39 +R168 +R93 +R89 +L26 +R19 +L19 +L44 +L19 +R227 +R30 +L79 +R5 +L83 +R9 +L19 +L90 +R525 +L42 +R65 +R87 +L35 +L68 +L119 +L53 +R40 +L47 +L453 +L71 +L29 +R1 +R80 +L25 +R9 +R24 +L89 +R12 +R88 +R44 +L44 +L36 +R80 +R32 +R24 +R86 +R6 +R11 +L66 +R63 +L110 +L90 +L69 +R369 +R49 +R65 +R82 +L96 +R85 +R15 +L10 +R210 +L355 +R55 +R51 +R31 +R30 +L64 +R752 +R17 +L87 +L30 +R79 +R718 +L897 +L66 +L634 +R138 +R62 +R96 +L96 +L122 +R18 +R88 +L29 +R44 +R430 +L45 +L97 +L51 +L76 +L60 +L66 +L34 +R992 +R25 +R69 +L52 +L534 +R72 +L71 +L1 +L30 +L70 +R55 +R45 +R1 +L19 +R3 +R53 +L15 +R94 +L391 +L84 +L20 +L408 +L14 +R19 +L29 +L60 +R46 +L76 +R26 +L785 +R59 +L45 +R13 +R32 +R71 +L23 +L9 +R61 +R414 +R22 +L24 +R104 +L5 +L311 +L14 +L750 +L36 +L755 +R55 +L95 +L39 +R46 +L40 +R28 +R5 +R77 +R18 +R11 +R60 +L71 +R13 +R32 +R55 +R823 +R89 +R88 +R49 +L65 +R3 +L87 +R98 +L32 +R86 +R87 +R57 +L71 +R44 +R99 +R364 +L49 +R20 +L8 +R9 +R607 +L62 +R51 +R923 +L41 +L99 +L953 +L8 +R52 +R426 +L48 +R303 +R45 +L49 +L51 +L22 +L3 +L10 +R11 +L81 +L471 +R76 +R50 +R750 +L41 +L79 +L23 +R13 +L4 +L57 +R91 +L89 +L369 +L42 +L39 +L86 +L56 +L719 +R345 +L45 +R28 +R72 +L92 +L47 +R85 +L49 +L97 +L78 +L822 +R11 +L63 +L48 +R11 +R544 +L55 +L24 +R62 +L38 +R50 +R50 +L46 +L32 +L21 +L74 +L35 +L10 +R43 +L84 +L8 +L833 +R40 +L82 +L78 +L16 +L73 +R9 +R965 +L65 +R41 +L941 +L77 +L76 +R53 +L37 +R1 +R36 +L41 +L281 +R22 +R911 +L11 +R822 +R460 +R18 +L70 +L74 +L443 +R922 +R65 +R34 +L34 +L544 +R84 +R80 +L120 +L543 +R49 +L99 +R42 +R751 +L25 +R825 +R48 +L97 +L60 +R28 +R81 +L43 +L818 +L25 +R86 +L21 +L547 +R71 +L3 +R54 +L54 +R8 +R692 +R85 +L85 +R629 +R86 +L79 +R6 +L626 +R3 +R97 +L16 +R84 +R87 +L471 +L96 +L704 +L31 +L33 +R13 +L77 +R28 +R57 +R67 +L974 +R38 +R8 +R17 +L336 +L77 +L75 +R61 +R14 +R34 +R19 +L52 +R27 +L228 +L605 +R73 +R32 +R90 +R10 +R34 +R48 +R18 +L59 +R789 +R70 +R7 +R83 +L7 +R17 +R54 +R42 +R363 +R793 +R48 +L91 +L9 +R49 +L28 +R79 +R43 +R28 +L62 +L80 +R4 +L33 +R59 +L19 +L232 +R192 +R47 +R17 +R36 +L24 +R18 +R6 +L286 +L25 +R11 +L67 +L79 +L1 +L19 +R66 +R26 +R423 +L205 +L92 +R448 +L33 +R41 +R12 +L60 +L43 +L95 +L795 +L36 +L20 +L69 +R72 +L74 +L95 +L79 +R80 +R94 +R95 +L13 +R78 +R19 +R21 +R43 +R17 +L27 +R66 +R50 +R370 +R34 +L53 +L60 +L93 +L47 +L14 +R2 +L88 +L33 +L354 +R48 +R59 +L20 +L96 +L36 +R60 +R72 +L287 +L1 +R94 +L99 +R29 +L36 +L2 +L998 +L39 +L78 +L51 +L39 +L9 +R51 +R51 +R88 +R422 +L120 +R3 +R21 +R84 +R75 +R83 +R468 +R90 +R30 +R593 +R77 +L71 +R71 +L61 +L39 +L491 +R54 +L76 +L383 +L4 +R42 +R58 +L70 +L98 +R12 +L44 +R12 +R88 +R731 +L94 +R912 +L81 +R372 +L40 +R82 +R45 +R62 +R11 +L195 +L31 +R26 +R80 +R20 +L176 +R76 +R96 +L96 +L58 +L12 +L558 +R28 +R91 +L91 +R65 +L34 +L52 +R21 +R64 +R96 +R28 +L88 +R93 +L33 +L53 +R93 +L390 +R44 +L92 +R65 +R39 +R34 +R56 +L62 +L78 +L28 +L32 +R2 +L347 +R58 +L990 +R21 +L78 +L50 +R28 +L80 +L70 +R50 +R4 +L282 +R78 +R41 +L70 +R342 +R18 +R69 +L55 +R55 +L51 +R12 +R839 +R51 +L782 +L69 +R86 +L78 +R921 +L43 +L74 +R88 +L655 +L80 +R231 +L59 +L925 +L39 +R981 +L79 +R76 +R949 +R99 +L63 +L36 +R25 +R93 +R297 +L79 +R22 +L58 +R162 +L73 +L789 +R665 +L93 +R37 +R12 +R88 +R4 +L621 +L92 +R86 +R14 +R31 +R409 +R60 +R43 +L90 +R47 +L56 +R556 +L22 +R64 +L50 +R66 +L58 +R584 +R14 +R2 +R21 +R79 +L134 +L66 +L93 +R23 +L52 +R87 +L49 +L916 +L47 +L766 +R72 +L9 +R57 +L5 +R198 +L69 +R59 +R10 +L79 +R33 +R46 +L58 +R83 +L49 +L98 +L43 +L51 +R76 +R929 +R85 +R26 +L16 +L253 +L31 +R18 +L732 +L86 +L68 +L69 +L58 +L5 +L82 +R31 +L835 +L14 +L19 +R919 +R860 +L660 +L20 +L50 +L30 +L28 +L674 +R47 +L45 +L71 +L37 +R78 +L70 +R92 +R8 +L46 +L35 +L19 +L44 +L46 +L878 +L95 +L37 +L31 +L34 +R78 +R61 +R26 +L57 +L57 +L124 +L10 +R48 +L81 +L1 +L42 +L16 +R61 +R4 +R11 +L936 +L67 +R905 +R62 +L64 +L498 +R85 +L231 +R62 +R87 +L363 +R741 +R11 +L133 +L290 +R396 +R45 +R71 +L25 +R6 +R115 +L15 +R16 +L78 +L50 +L72 +L99 +R60 +R23 +L42 +R43 +R39 +L91 +R552 +L630 +L80 +L921 +R22 +L62 +R36 +R99 +L65 +R32 +R68 +R17 +L560 +L16 +R64 +R56 +L34 +L91 +R529 +R48 +R42 +L43 +L53 +L94 +R96 +L63 +L284 +R86 +R16 +L16 +L57 +R23 +L66 +R40 +L40 +R145 +R59 +L304 +L196 +R21 +R193 +L98 +L820 +L93 +L632 +L75 +R33 +L33 +R74 +R1 +L75 +L872 +R72 +L61 +L94 +L64 +L81 +L96 +L4 +R3 +R97 +R17 +L40 +L877 +R81 +R99 +R14 +R37 +L63 +L86 +L33 +R46 +L95 +L81 +R81 +L50 +R50 +R38 +L68 +L298 +R6 +L812 +L77 +L64 +R75 +L23 +R723 +R36 +R64 +L29 +R988 +L59 +L20 +R103 +L83 +L14 +R74 +R44 +L95 +R689 +R29 +R16 +R57 +R15 +R985 +L22 +R66 +L58 +L16 +R30 +R764 +L59 +L71 +L273 +L59 +L73 +L42 +L674 +R27 +L940 +L24 +L415 +R39 +L319 +L281 +L82 +L53 +R333 +R2 +R1 +R99 +L50 +R886 +R18 +R89 +R57 +L859 +L20 +R79 +R21 +R79 +R8 +L780 +L28 +R572 +L72 +R32 +L870 +R91 +R45 +R965 +R99 +L62 +L417 +L73 +R90 +L697 +R270 +R812 +L94 +R54 +R99 +L44 +L53 +L66 +L81 +R80 +R20 +R94 +L72 +R78 +R35 +R565 +L64 +R98 +L34 +L246 +L10 +L46 +L5 +L486 +R93 +R96 +L14 +L82 +L46 +R78 +L54 +R97 +R41 +L19 +L97 +L832 +L862 +L85 +L8 +R87 +L54 +R992 +R62 +L681 +R85 +R98 +L743 +R10 +R31 +L6 +R87 +R58 +R87 +R92 +L87 +R53 +L134 +R50 +R528 +L53 +L53 +R78 +R716 +R81 +L97 +L593 +L62 +L396 +L70 +R3 +R41 +L23 +R85 +L57 +L13 +L38 +R71 +R28 +L876 +R297 +R73 +L806 +L632 +L32 +L14 +L69 +R83 +R63 +L676 +R13 +L76 +R713 +R13 +R83 +L15 +R531 +L27 +L84 +L17 +L121 +L909 +R9 +R27 +L28 +R960 +R183 +L42 +R50 +R50 +L7 +L87 +L62 +R26 +R30 +L28 +R28 +R81 +R42 +R56 +L28 +L814 +L74 +R37 +L97 +L203 +L70 +R57 +R413 +L658 +R208 +L50 +R72 +L816 +R967 +L38 +R315 +R646 +R27 +L82 +L22 +L33 +R638 +L8 +L24 +L42 +R85 +R16 +L921 +L280 +L59 +R46 +L61 +R227 +L23 +L28 +L2 +L49 +L77 +R8 +L81 +R52 +R29 +L282 +R349 +L28 +R86 +R880 +L87 +R591 +L37 +L738 +R9 +R75 +R37 +R63 +L287 +L13 +L2 +L98 +R64 +L64 +L89 +L60 +L51 +R82 +R18 +L45 +L13 +R17 +R4 +L84 +L86 +L12 +R46 +L27 +L6 +R98 +L73 +R2 +L62 +R10 +L328 +L85 +L45 +L680 +R35 +R825 +R17 +L850 +L34 +L56 +L311 +R43 +R60 +L382 +R11 +L89 +R511 +R60 +R29 +R54 +L54 +L50 +L34 +R25 +L30 +L11 +L57 +L48 +L50 +R12 +R77 +R66 +R311 +R89 +L92 +L8 +R9 +L9 +L857 +R57 +R45 +L90 +R14 +L269 +L47 +R147 +L40 +R40 +R64 +R58 +R1 +L23 +L68 +L24 +R392 +L511 +L89 +L877 +L82 +L44 +R75 +L18 +L72 +R418 +R77 +L68 +R49 +R42 +L84 +L16 +R94 +R6 +L72 +L10 +R82 +R32 +R368 +R73 +L44 +L29 +R220 +R80 +R45 +L45 +L530 +R30 +L62 +R7 +R355 +R84 +L388 +L96 +R45 +L32 +L313 +R40 +R50 +R56 +R27 +L73 +R12 +R18 +L287 +L95 +L48 +L80 +L778 +R5 +L47 +R25 +R33 +R3 +L10 +L39 +L567 +R72 +R58 +L95 +R6 +L86 +L93 +R93 +L31 +R31 +R86 +L86 +L92 +L3 +R77 +R37 +L865 +R46 +L44 +R39 +L95 +R82 +L6 +R24 +L279 +R22 +R26 +R431 +L68 +R68 +L865 +R65 +L393 +R894 +R23 +R76 +R35 +R20 +R43 +R79 +L36 +R60 +L52 +L91 +R42 +R97 +L697 +R550 +R82 +R68 +L98 +R98 +L8 +L59 +L51 +L78 +R10 +L31 +R917 +L508 +L92 +R63 +R19 +R93 +R25 +L20 +R88 +L68 +L2 +R702 +L69 +R69 +R34 +L34 +R8 +L8 +L15 +R53 +R62 +R85 +R815 +L62 +R93 +L76 +L65 +L67 +L123 +L18 +L82 +L22 +L577 +L42 +L57 +R73 +L75 +L25 +R25 +R171 +R29 +R87 +R56 +R57 +L11 +L89 +R55 +R38 +R68 +R965 +L19 +L32 +R466 +L15 +L16 +L69 +R59 +L53 +L90 +R1 +R99 +L16 +R24 +R93 +R62 +L6 +R86 +R15 +R85 +R399 +L60 +R38 +L56 +R620 +R59 +L673 +L613 +R843 +L57 +R20 +L10 +L10 +R663 +L11 +L52 +R156 +R44 +L23 +L42 +L22 +L213 +R7 +L7 +L19 +L632 +R51 +R71 +L71 +R91 +L97 +L94 +L70 +L6 +R76 +R71 +L43 +L34 +L1 +L93 +L91 +R33 +R30 +R28 +L14 +R91 +L319 +L87 +L71 +R86 +R997 +L83 +L289 +L68 +R73 +L16 +R69 +R51 +R17 +R63 +R656 +L5 +L2 +R48 +L81 +R77 +L70 +L423 +L57 +L43 +L35 +R98 +R77 +L86 +R2 +R44 +L56 +R356 +L16 +R363 +R98 +R55 +L17 +R28 +L564 +L4 +L743 +R2 +L2 +L9 +L21 +R897 +R353 +L27 +L83 +L440 +L70 +R155 +R53 +R292 +L56 +R56 +R76 +R224 +R63 +R937 +L13 +R13 +R79 +L79 +L89 +L19 +R48 +L40 +R32 +R37 +R31 +L8 +R875 +L67 +R27 +L9 +R92 +L883 +R224 +R75 +L26 +R74 +R90 +L16 +R874 +R99 +L21 +L840 +L60 +L71 +L15 +R86 +R445 +R55 +R94 +L7 +L50 +R80 +L87 +R70 +L79 +L17 +R996 +R86 +R214 +R29 +R71 +R63 +L63 +L22 +R2 +R50 +R69 +R86 +L585 +L28 +L52 +L418 +R2 +R750 +L645 +L72 +L848 +L428 +L61 +L16 +L84 +R16 +R261 +R530 +L75 +R625 +L3 +R46 +L31 +R39 +L723 +L85 +L56 +R21 +R35 +R83 +R90 +L86 +L33 +L54 +R77 +L865 +R114 +L293 +L39 +R88 +L81 +R59 +R740 +L64 +L30 +L7 +L99 +R695 +R61 +R88 +L99 +L96 +L892 +R10 +R33 +R25 +L25 +L147 +R47 +L76 +R83 +R93 +L36 +L846 +L618 +L59 +L32 +L20 +R11 +R95 +L83 +L110 +L96 +L6 +R189 +R6 +R17 +L12 +L80 +L20 +R49 +L67 +L82 +R167 +R33 +R3 +L3 +L12 +R15 +L26 +L97 +R20 +R74 +L74 +R73 +R27 +L47 +L153 +L502 +L13 +L95 +R10 +R63 +L63 +R92 +R8 +R708 +R89 +R546 +R357 +L474 +R89 +R85 +L18 +R82 +L664 +R712 +L28 +R98 +L5 +R11 +L62 +R674 +R63 +L63 +L263 +R5 +L6 +L55 +L63 +L18 +L20 +L743 +L89 +R52 +L99 +L1 +R65 +R82 +R81 +R72 +R56 +L454 +L627 +R25 +L75 +R80 +R814 +R81 +L263 +R61 +R2 +R31 +L18 +R48 +R36 +R96 +L8 +R115 +L77 +R855 +L578 +L69 +L31 +L14 +R14 +R96 +L196 +R96 +L396 +L11 +L78 +L11 +L74 +R441 +R27 +R6 +L84 +L33 +L83 +L32 +R68 +L851 +R58 +R30 +R94 +L934 +L269 +R737 +R15 +L16 +L122 +L94 +R16 +R34 +R2 +R64 +R81 +R91 +R87 +L105 +R46 +L618 +R62 +R780 +L24 +L61 +L86 +L73 +L80 +L99 +L1 +L81 +R81 +L60 +R60 +L66 +R10 +R56 +L84 +R84 +L605 +R27 +R78 +L333 +R133 +L395 +R95 +L11 +R146 +R91 +R74 +L82 +L18 +R83 +L71 +L845 +R59 +L37 +L28 +L27 +L34 +L76 +R54 +R15 +R63 +R20 +R18 +R87 +L64 +R99 +L16 +L3 +L28 +R502 +L71 +L55 +L57 +R19 +L7 +R32 +L2 +L24 +L6 +R8 +R92 +L11 +L89 +L16 +R692 +R50 +R73 +R11 +R187 +L63 +R63 +R3 +R83 +L83 +R98 +R778 +L2 +L86 +R35 +R57 +L85 +L95 +L2 +L61 +R63 +R94 +R6 +R142 +R24 +R11 +L57 +R60 +L80 +R886 +R151 +R16 +R47 +L975 +R75 +R98 +R82 +L31 +R49 +R2 +L89 +L11 +R62 +R38 +L27 +R21 +R406 +L342 +R53 +R18 +L113 +R23 +R77 +R84 +L64 +R64 +R325 +R84 +R91 +L36 +R76 +L49 +L91 +L74 +R3 +R71 +L25 +L42 +L833 +L197 +L47 +R44 +R88 +L7 +R372 +R19 +L72 +R54 +R50 +R67 +R579 +R50 +L219 +R19 +R65 +L94 +L16 +L63 +R89 +R19 +R432 +R2 +L34 +R90 +L889 +L361 +R635 +L75 +R44 +L251 +L38 +L67 +L24 +L86 +R41 +L4 +L23 +L92 +L35 +R590 +R45 +R61 +L99 +L601 +L438 +L29 +L16 +R34 +R88 +R30 +R492 +L292 +R26 +L88 +R17 +L85 +R67 +L976 +L41 +R479 +L629 +L391 +L21 +L34 +R46 +L511 +R50 +L44 +L617 +R22 +L401 +L50 +R51 +R20 +L536 +L73 +L36 +L675 +L42 +R87 +R255 +L35 +L20 +L445 +R22 +L69 +L175 +R22 +L12 +R86 +R26 +L79 +R314 +R38 +R28 +R899 +L88 +L62 +R50 +L86 +L486 +L79 +R50 +L875 +L59 +L65 +R27 +R53 +R20 +L28 +L72 +L98 +R7 +L30 +R21 +L821 +L79 +R503 +L83 +L10 +R35 +L8 +R366 +L43 +L36 +L24 +L115 +L85 +L30 +R69 +R21 +L60 +L30 +L99 +L21 +R50 +L35 +L65 +L647 +L113 +L120 +L20 +L34 +R84 +R3 +L53 +L743 +L751 +R694 +L342 +L87 +R11 +L82 +R36 +R34 +L75 +L5 +L73 +L17 +L88 +R39 +L49 +L2 +L9 +L891 +L43 +R760 +R83 +L388 +L12 +L1 +L72 +L18 +R34 +L26 +L17 +R16 +R998 +L14 +R48 +R52 +L21 +L56 +L27 +R86 +R45 +R73 +L27 +L56 +R83 +L13 +R13 +L20 +L241 +L439 +L814 +R35 +R79 +R12 +L99 +L94 +R51 +R353 +L753 +R30 +L45 +R45 +L41 +L78 +R19 +R4 +L4 +L6 +R70 +R12 +R425 +R85 +R67 +L51 +L757 +R55 +R95 +R38 +R67 +R65 +L99 +L111 +L49 +L6 +L52 +L3 +R35 +R26 +R97 +L3 +L143 +R43 +L44 +R44 +R37 +R35 +L72 +L59 +L860 +R19 +R38 +R62 +R97 +L53 +L544 +L57 +R57 +L89 +L97 +R786 +L82 +L99 +L23 +R569 +L76 +L55 +R97 +R17 +L48 +L316 +R8 +L60 +R60 +R15 +R93 +L53 +L23 +R36 +L60 +R94 +L369 +R383 +R92 +L132 +R80 +L762 +R57 +R34 +L77 +R74 +L21 +L14 +L10 +R71 +L36 +L8 +L77 +L979 +R21 +R979 +R280 +L91 +R11 +R79 +R21 +R54 +L67 +L21 +R66 +L32 +R24 +L313 +R136 +L52 +R777 +L72 +L80 +L40 +R44 +L813 +R6 +L56 +L50 +R55 +L66 +R710 +L430 +L5 +L66 +R262 +L682 +R87 +R643 +R19 +R80 +R467 +R15 +R773 +L55 +L18 +R58 +L427 +L61 +L229 +R59 +L18 +L20 +R20 +R14 +R4 +L97 +R34 +L268 +L69 +L45 +R88 +R392 +L35 +L41 +L59 +R526 +R1 +L11 +L515 +R29 +R75 +R94 +L99 +L69 +L33 +R2 +L63 +R1 +L38 +R28 +R53 +L72 +R8 +R54 +L51 +R71 +L61 +R84 +R86 +L37 +L29 +L54 +R620 +L5 +R5 +R69 +R831 +L36 +L31 +L33 +R1 +R29 +R70 +L15 +R78 +R79 +R58 +L555 +L59 +L46 +L40 +R47 +R53 +R66 +R34 +R89 +L769 +R19 +R8 +L47 +L5 +L495 +L49 +R46 +R3 +R58 +R42 +R89 +L60 +R65 +L250 +L44 +L26 +L43 +R69 +R49 +R23 +L72 +L11 +L89 +R882 +R3 +L35 +L612 +L38 +L876 +R17 +L420 +R73 +L98 +L51 +L82 +R40 +R39 +R53 +R5 +L58 +L642 +L1 +L299 +L814 +L86 +R59 +L71 +L489 +L99 +R55 +L55 +R91 +L63 +L14 +L71 +R70 +L190 +L23 +L28 +L72 +R33 +L69 +L64 +R3 +R35 +R19 +L540 +L51 +L18 +R52 +R6 +L247 +R73 +R733 +R80 +L45 +L329 +R48 +L97 +L22 +R59 +R41 +R1 +L14 +R44 +R56 +L87 +R965 +R51 +L6 +R5 +R79 +L93 +R51 +R50 +L2 +R628 +L88 +R60 +R34 +L915 +L19 +R55 +R745 +R67 +L75 +L92 +L98 +R871 +L75 +R3 +L19 +R18 +R62 +L92 +L32 +R85 +L23 +L92 +L26 +R18 +L40 +R40 +L86 +R86 +L59 +R32 +L93 +L32 +R78 +L45 +L70 +R89 +R908 +L45 +R68 +L26 +R63 +R32 +R58 +R86 +L46 +R2 +L19 +R19 +R847 +R59 +L5 +R90 +R72 +L63 +L19 +R19 +L859 +L16 +L25 +R59 +L59 +R39 +L39 +R431 +L58 +R27 +L49 +L29 +R78 +L42 +L91 +L67 +R86 +L786 +L50 +R570 +L42 +R5 +R984 +L76 +L60 +L25 +R56 +R98 +R55 +R85 +R677 +R93 +L70 +R83 +R317 +L471 +R55 +R16 +L448 +L155 +R64 +R339 +L41 +R173 +L20 +L72 +L20 +L520 +L24 +L76 +R89 +R35 +R13 +L759 +R624 +R98 +R37 +R563 +R99 +L99 +L703 +L57 +L32 +R61 +R31 +L630 +L70 +R60 +L91 +R250 +R6 +L25 +R30 +L69 +R38 +L42 +R43 +L9 +R9 +L927 +R40 +L76 +R253 +L619 +L271 +L425 +R21 +R99 +R76 +L71 +R284 +R93 +R311 +R790 +L32 +L46 +R90 +L52 +R62 +L45 +L76 +R21 +L91 +L30 +R221 +L787 +R81 +R59 +L53 +L39 +R12 +L573 +L27 +L873 +R87 +L587 +R8 +L240 +R431 +R617 +R92 +L8 +R7 +R93 +R57 +R58 +L41 +R16 +L78 +R80 +L92 +R36 +L536 +L80 +L70 +L27 +L74 +L82 +L18 +R51 +L576 +R7 +L14 +R83 +R522 +R878 +L55 +L60 +R15 +L79 +R75 +R4 +L44 +L1 +L13 +L8 +L94 +L13 +L727 +R40 +R10 +R91 +R59 +R19 +L63 +L56 +L93 +R93 +L99 +R56 +R31 +L51 +L37 +L30 +R290 +R40 +R94 +R254 +L48 +L15 +L95 +R86 +L41 +R35 +R45 +R19 +R66 +R532 +L738 +L50 +L18 +R89 +L15 +L22 +R79 +R90 +L18 +R953 +L49 +R83 +R84 +R357 +L540 +R37 +R246 +L70 +R48 +L78 +L11 +L77 +R59 +L71 +R30 +L77 +R47 +R61 +R36 +R68 +R35 +L64 +R64 +L76 +L79 +R55 +L95 +L76 +R671 +L21 +L28 +R1 +L452 +R47 +R85 +L731 +R99 +R88 +L569 +R50 +R40 +L9 +L31 +R17 +R57 +R651 +L27 +R33 +R40 +L51 +R43 +R12 +R56 +R93 +L789 +L79 +L12 +L13 +L263 +L937 +R653 +R39 +L43 +L49 +R23 +L23 +L42 +R789 +R2 +R251 +R70 +R99 +L658 +R89 +R691 +L427 +R36 +L57 +L50 +R75 +R332 +R33 +L1 +R168 +L929 +R29 +R53 +L2 +L51 +L52 +R52 +R89 +L24 +L65 +R65 +R35 +R822 +L87 +L75 +L32 +L668 +L408 +R114 +L366 +L27 +R15 +L46 +L42 +R14 +L52 +R90 +L52 +L83 +R16 +L906 +L25 +L97 +L205 +L27 +L121 +L52 +L99 +L1 +R310 +R90 +L61 +L39 +R4 +R81 +R15 +R187 +R13 +L84 +R66 +R51 +R67 +L656 +R35 +L48 +R89 +L606 +R786 +R73 +L14 +R41 +L18 +R818 +L73 +R73 +R14 +R18 +R27 +L81 +R49 +R1 +L93 +L33 +L8 +L694 +L31 +L83 +R414 +R60 +R40 +R88 +R46 +L34 +L451 +L5 +L86 +R90 +R52 +L61 +R47 +L86 +R5 +L953 +R418 +L70 +R696 +R1 +R69 +R296 +R38 +L69 +R69 +R89 +L989 +R173 +R42 +R585 +L638 +L54 +L29 +L569 +L10 +R14 +R47 +R95 +R99 +L62 +R807 +R27 +L24 +L94 +R63 +L72 +L74 +R74 +R458 +R89 +R953 +R25 +R89 +L77 +L47 +R36 +L133 +L93 +R21 +L21 +L397 +L3 +R25 +L340 +R94 +R7 +R45 +L31 +R85 +R88 +R94 +R933 +L59 +L292 +L449 +R28 +L28 +L163 +R645 +R18 +R11 +R89 +L4 +R760 +R79 +L35 +R55 +L55 +L10 +R5 +R809 +L4 +L51 +R18 +R28 +R29 +L24 +L53 +R176 +R25 +L48 +R41 +L62 +L74 +R357 +L84 +R3 +R29 +L10 +L71 +L65 +L26 +L37 +R56 +R74 +R16 +L47 +L4 +L226 +L60 +L3 +R27 +R66 +L81 +R781 +L61 +R567 +L673 +R367 +R22 +R78 +L955 +L207 +L85 +R768 +L5 +L37 +L79 +L60 +R960 +L93 +L1 +R47 +R47 +R43 +L43 +L62 +R192 +L85 +R55 +R36 +R433 +R731 +L576 +L824 +L860 +R162 +L30 +R46 +R28 +L46 +R724 +R48 +R18 +L790 +L85 +L15 +R50 +R50 +R97 +L10 +L87 +R93 +L46 +R53 +R82 +R39 +R79 +R96 +L96 +L30 +R84 +L54 +L2 +L16 +R60 +L42 +R88 +L888 +R63 +R919 +L82 +L34 +L64 +L2 +R4 +L504 +R66 +L66 +R73 +L4 +R72 +R59 +L74 +L26 +L87 +L210 +L49 +R66 +L22 +L98 +L45 +R64 +L19 +L64 +L36 +R94 +L874 +R880 +R9 +L44 +L291 +R26 +R53 +R47 +R86 +R38 +R97 +L484 +L145 +L48 +R31 +R66 +L41 +L44 +L44 +R55 +R10 +L77 +R594 +L94 +L32 +R24 +R81 +R192 +R87 +L952 +R73 +R73 +L83 +R37 +L83 +R83 +R818 +R82 +L62 +R62 +L99 +R42 +R46 +R2 +L91 +L18 +R77 +R41 +R27 +L27 +R25 +L25 +L84 +R80 +L96 +L117 +R17 +L329 +L71 +L689 +R89 +R66 +R352 +R74 +L60 +R15 +R53 +R33 +L33 +L3 +L95 +R98 +R53 +R91 +R1 +L70 +R91 +L66 +L30 +L10 +R79 +L3 +L27 +L35 +R26 +R94 +L94 +L88 +L29 +R83 +L66 +R50 +L50 +R26 +R75 +L1 +L84 +L28 +R84 +L56 +L16 +R55 +R22 +R23 +R95 +R15 +R90 +L64 +R64 +L90 +L93 +R87 +L4 +R3 +L63 +R69 +L9 +L37 +L2 +R10 +R22 +R39 +R49 +R33 +L13 +R36 +R44 +R13 +L42 +R2 +L23 +R36 +R13 +R35 +L32 +R48 +R3 +R28 +R20 +R2 +L12 +R44 +L35 +L34 +L25 +L36 +L5 +R42 +R4 +R3 +R24 +L2 +R38 +L9 +R43 +L13 +L32 +R15 +R8 +L27 +R7 +R40 +R13 +L22 +L22 +L34 +R36 From d5d903aa1055681c0f4b114b04075d21ab0b78c0 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Tue, 2 Dec 2025 22:21:30 -0600 Subject: [PATCH 3/9] Fixed --- Problem1b.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Problem1b.java diff --git a/Problem1b.java b/Problem1b.java new file mode 100644 index 0000000..57f2943 --- /dev/null +++ b/Problem1b.java @@ -0,0 +1,44 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.util.ArrayList; + +public class Problem1b { + + public static void main(String[] args) { + ArrayList allLines = new ArrayList<>(); + + try (BufferedReader reader = new BufferedReader(new FileReader("inputs/inputProblem1.txt"))) { + String line; + while ((line = reader.readLine()) != null) { + allLines.add(line); + } + } catch (Exception e) { + e.printStackTrace(); + } + + // Call solve and print result + System.out.println(solve(allLines)); + } + + public static int solve(ArrayList allLines) { + int dial = 50; // starting position + int total = 0; + + for (String line : allLines) { + int value = Integer.parseInt(line.substring(1)); + int direction = (line.charAt(0) == 'L') ? -1 : 1; + + // Step through each click to count zeros correctly + for (int step = 0; step < value; step++) { + dial = (dial + direction + 100) % 100; // wrap around 0-99 + if (dial == 0) { + total++; + } + } + + System.out.println("Current Dial Position: " + dial + " || Total: " + total); + } + + return total; + } +} \ No newline at end of file From c4b24c9d313d68bf4b97d10426c5a08dd8555978 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Tue, 2 Dec 2025 22:26:38 -0600 Subject: [PATCH 4/9] restructured + input for 2 --- inputs/inputProblem2.txt | 1 + Problem1.java => src/Problem1.java | 2 + Problem1b.java => src/Problem1b.java | 2 + src/Problem2.java | 56 ++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 inputs/inputProblem2.txt rename Problem1.java => src/Problem1.java (98%) rename Problem1b.java => src/Problem1b.java (98%) create mode 100644 src/Problem2.java diff --git a/inputs/inputProblem2.txt b/inputs/inputProblem2.txt new file mode 100644 index 0000000..69b5adc --- /dev/null +++ b/inputs/inputProblem2.txt @@ -0,0 +1 @@ +9191906840-9191941337,7671-13230,2669677096-2669816099,2-12,229599-392092,48403409-48523311,96763-229430,1919163519-1919240770,74928-96389,638049-668065,34781-73835,736781-819688,831765539-831907263,5615884-5749554,14101091-14196519,7134383-7169141,413340-625418,849755289-849920418,7745350-7815119,16717-26267,4396832-4549887,87161544-87241541,4747436629-4747494891,335-549,867623-929630,53-77,1414-3089,940604-1043283,3444659-3500714,3629-7368,79-129,5488908-5597446,97922755-98097602,182-281,8336644992-8336729448,24-47,613-1077 diff --git a/Problem1.java b/src/Problem1.java similarity index 98% rename from Problem1.java rename to src/Problem1.java index efe6010..4f0b0ad 100644 --- a/Problem1.java +++ b/src/Problem1.java @@ -1,3 +1,5 @@ +package src; + import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; diff --git a/Problem1b.java b/src/Problem1b.java similarity index 98% rename from Problem1b.java rename to src/Problem1b.java index 57f2943..92dddc2 100644 --- a/Problem1b.java +++ b/src/Problem1b.java @@ -1,3 +1,5 @@ +package src; + import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; diff --git a/src/Problem2.java b/src/Problem2.java new file mode 100644 index 0000000..e493346 --- /dev/null +++ b/src/Problem2.java @@ -0,0 +1,56 @@ +package src; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Problem2 { + + public static void main(String[] args) { + String filePath = "inputs/inputProblem2.txt"; + + try { + String input = readFileAsString(filePath); + List numbers = parseRanges(input); + + for (Long num : numbers) { + System.out.println(num); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static String readFileAsString(String filePath) throws IOException { + StringBuilder sb = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = reader.readLine()) != null) { + sb.append(line.trim()); // remove extra spaces/newlines + } + } + return sb.toString(); + } + + public static List parseRanges(String input) { + List result = new ArrayList<>(); + String[] ranges = input.split(","); + + for (String range : ranges) { + String[] parts = range.split("-"); + if (parts.length != 2) { + throw new IllegalArgumentException("Invalid range: " + range); + } + long start = Long.parseLong(parts[0]); + long end = Long.parseLong(parts[1]); + result.add(start); + result.add(end); + } + + return result; + } + +} \ No newline at end of file From 33da6eb1b0ea6643c1770f42d1b719ebecf57c8d Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Tue, 2 Dec 2025 22:50:02 -0600 Subject: [PATCH 5/9] solved 2 --- src/Problem2.java | 53 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/src/Problem2.java b/src/Problem2.java index e493346..7141fb5 100644 --- a/src/Problem2.java +++ b/src/Problem2.java @@ -13,44 +13,73 @@ public class Problem2 { try { String input = readFileAsString(filePath); - List numbers = parseRanges(input); - - for (Long num : numbers) { - System.out.println(num); - } + List ranges = parseRanges(input); + long tally = solve(ranges); + System.out.println("Sum of invalid IDs: " + tally); } catch (IOException e) { e.printStackTrace(); } } + // Solve by generating only repeated IDs + public static long solve(List ranges) { + long sum = 0; + + for (long[] range : ranges) { + long start = range[0]; + long end = range[1]; + + for (long num = start; num <= end; num++) { + String numStr = String.valueOf(num); + int len = numStr.length(); + + if (len % 2 != 0) continue; + + boolean repeated = false; + for (int prefixLen = 1; prefixLen <= len / 2; prefixLen++) { + if (len % prefixLen != 0) continue; // must divide evenly + + String prefix = numStr.substring(0, prefixLen); + String repeatedNum = prefix + prefix; + if (repeatedNum.equals(numStr)) { + repeated = true; + break; + } + } + + if (repeated) sum += num; + } + } + + return sum; + } + public static String readFileAsString(String filePath) throws IOException { StringBuilder sb = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; while ((line = reader.readLine()) != null) { - sb.append(line.trim()); // remove extra spaces/newlines + sb.append(line.trim()); } } return sb.toString(); } - public static List parseRanges(String input) { - List result = new ArrayList<>(); + public static List parseRanges(String input) { + List result = new ArrayList<>(); String[] ranges = input.split(","); for (String range : ranges) { - String[] parts = range.split("-"); + String[] parts = range.trim().split("-"); if (parts.length != 2) { throw new IllegalArgumentException("Invalid range: " + range); } long start = Long.parseLong(parts[0]); long end = Long.parseLong(parts[1]); - result.add(start); - result.add(end); + result.add(new long[]{start, end}); } return result; } - } \ No newline at end of file From c87b3ce3673ab083bb3cd6583d510345b22ffc87 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Tue, 2 Dec 2025 22:51:47 -0600 Subject: [PATCH 6/9] solved 2b --- src/Problem2b.java | 87 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/Problem2b.java diff --git a/src/Problem2b.java b/src/Problem2b.java new file mode 100644 index 0000000..52e9268 --- /dev/null +++ b/src/Problem2b.java @@ -0,0 +1,87 @@ +package src; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class Problem2b { + + public static void main(String[] args) { + String filePath = "inputs/inputProblem2.txt"; + + try { + String input = readFileAsString(filePath); + List ranges = parseRanges(input); + long tally = solve(ranges); + System.out.println("Sum of invalid IDs: " + tally); + + } catch (IOException e) { + e.printStackTrace(); + } + } + public static long solve(List ranges) { + long sum = 0; + + for (long[] range : ranges) { + long start = range[0]; + long end = range[1]; + + for (long num = start; num <= end; num++) { + String numStr = String.valueOf(num); + int len = numStr.length(); + + boolean repeated = false; + + for (int prefixLen = 1; prefixLen <= len / 2; prefixLen++) { + if (len % prefixLen != 0) continue; + + String prefix = numStr.substring(0, prefixLen); + int times = len / prefixLen; + StringBuilder sb = new StringBuilder(); + for (int t = 0; t < times; t++) { + sb.append(prefix); + } + + if (sb.toString().equals(numStr)) { + repeated = true; + break; + } + } + + if (repeated) sum += num; + } + } + + return sum; + } + + public static String readFileAsString(String filePath) throws IOException { + StringBuilder sb = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + while ((line = reader.readLine()) != null) { + sb.append(line.trim()); + } + } + return sb.toString(); + } + + public static List parseRanges(String input) { + List result = new ArrayList<>(); + String[] ranges = input.split(","); + + for (String range : ranges) { + String[] parts = range.trim().split("-"); + if (parts.length != 2) { + throw new IllegalArgumentException("Invalid range: " + range); + } + long start = Long.parseLong(parts[0]); + long end = Long.parseLong(parts[1]); + result.add(new long[]{start, end}); + } + + return result; + } +} \ No newline at end of file From 9fd5c2b616b0c115ee1db96b082ca6c9558682f1 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Wed, 3 Dec 2025 22:21:01 -0600 Subject: [PATCH 7/9] solved 3a --- inputs/inputProblem3.txt | 200 +++++++++++++++++++++++++++++++++++++++ src/Problem3.java | 41 ++++++++ 2 files changed, 241 insertions(+) create mode 100644 inputs/inputProblem3.txt create mode 100644 src/Problem3.java diff --git a/inputs/inputProblem3.txt b/inputs/inputProblem3.txt new file mode 100644 index 0000000..c9d8612 --- /dev/null +++ b/inputs/inputProblem3.txt @@ -0,0 +1,200 @@ +8221441533335523934234684734333842352334638213344455472314354533231333442559833436143312222328593824 +4537334536668466474564396658667455533434445866677578743536444475227844245366826854475546865646277786 +5711377113466675766354253665637477467166252166726612166663276146746564737732416111157574562175133489 +2212221522112223211221222224432312222232222222422222212222222221222222621221113211114422272222622222 +4433744433434333453543342843442233446337253224453333234333363344445331444433332411335316333444334322 +2932536643762349544637276279922336323343637373644457388665569365574947333365767853797833422863593389 +4224923339177445426521132321221387352234121242437422343592434419325343923344224222946427643253343325 +2532514435554595545544666545425545445736445367454433555551471552645541454756555953325758547354556354 +2312223243121323212322131222222212421126225312232222222112223222232122212223221342232322222113324222 +5245333434534354423334443355445433434454653434443334434445344423454342344344445664634334433335524123 +5321243272227426332423355336632332513232243224524122326324224222343324552235342522145432332622252322 +3454333336711572453923673645331331385171664743327343465337326532335354225333322343632233753554533635 +4322433531151337335232445252255322324535252443332247342222423345265283632324243125351422122538528353 +5316256665336362332255616514531161426411231233315653162134462454615364512452531342531213515311265789 +5623252425433353333423234516322323434332354323453235432323562534954336134512444335333273356243362452 +2473441123325482163232422546872327232311234532323216825125424372354343527533342432233641522436653435 +1622325234326623213367322233332335132222233623342333352231332163335253336323324233544322342332223663 +3244443442443244474373184853448343434333734454444559444943443435344445532554434742552324645374543524 +3324424522442444344244354233832723644644244526435438432933333453324344632344334564445274163643342444 +2316122122223221422522122221354222222422233222321222222262212364231222225121212242222542221322441123 +3567655354377643474575257645455554634558575495565757555354565675754446346975647372564345534666457234 +3422364344323233333334337253374431434324472272242424355553736654524345136212511225284331274432346344 +4757413228323232163333452474323284312214326422654271341344232124363662344432233582145455249244343542 +2274112222327244242737542223222611216713442441246234624447722425323474452841242543231225132432262113 +4142412624232224122222262324244122531422223121226212261122331121222224226322222221222113123222232222 +1732373332322223423322333214237341324332334532423223333523222122331213233323324233232332342223222332 +1371432332323333323332333424543335732234333363343323232333523333514126334333233536463333732322233332 +1332322423313131242233113222223322226322422222321232231342232212522231413222128234333227222313323323 +2423492322379442321338322476222468612292822222435123282222262422424334813364843329423433732222212145 +2212121324122422319242231232221646632448224222134322523133262434211225643242223232242222232222532143 +3884823542333253436727222565673625366541342462354556527134851825855454544334475435735543724575525357 +7695736452366643666876756753641456356454657544464646453545744646454564554687556675444455534436574654 +2322332333214363142322333222122252343623331322229333722243346335233453754331122237332233233234343332 +2725142445219453822122223452355564262235235421281241515445215374254584415524232455931574482522455422 +3244224422243412546222422434235234322343251224223435122225442232242332426426132411322143225313524223 +5334324551533455523523343445226533343632353454623512523446422434244363435524464532115312323335414434 +6622344334222177442132223445453573442762234465262412225765332831124262425635563483386244182345645632 +2333223321222242152233232233222322232212253133223122333323221321221232313252223233242113353222122312 +3562666539825364695654744958652435554883665858795552483466652358554552514934543664825345676465235655 +4464666454364494444247463377434334644434534444833732434444343346344244474434234345434344681875275443 +2244297484239274422545272942241287614722989322944223423129768536222738232342242342523226292276575342 +6356336374663644283543334432369343263733345463547355353444353366484667635542644274364274433346564375 +4495427464455352358884874577647536733723576739756677856638774763483577657457534424578294653383836786 +4544244533533344353433432463563545344335234333333333443433443234334543532344234343454733643334444224 +3436255392645334352836475492134823254254532766867595748572674523724464531492266342252422848243542773 +4528672646465642441363855571678622796563328659212751966562866657656835387655463272277335233634585765 +4557542665623222232646755657236636631452676322257363225673322736723137354532431464321161237323238331 +9846412752215324229554852232322632536522565323253636722832545653222247578533377347544132395592281695 +3422262331313134223632753123333211722235337323235621622221422253232683577332332233631213733343222233 +3356665435544416443416644455344433764635545626536364453426552433343452335333454557655556636369636535 +7248843442347433434445459543423453455275443331614544856327566643347337654245465453232727442344443574 +3126333161232262322123522222422223284222313644224212647212262222222123231223182322221324622221225212 +8521322222342231223231462332134322238325242131246123231332332123422224412232212231216232413353511223 +3233324643335343323334221333332453333333623233332335322424343533343323834364333433433347243342323423 +2225242226422222222341521252223332222252222222122925313223222422222712232122225223512221252222222222 +3224373423344359433323323324333254543432235432264243234136845563623332222313254244423427222232432233 +2955534855224345844584654455435553545445374549748583355844352436445445256253565425284555533544543444 +8276212434232222245422123422121222142212234442722121272222432122234222232422322212242224413722222262 +4122113164222425243215444232224113223332134312232312322254523227421344233242223232322332233221473432 +2122222123422223221112217222151222222221122222421232212221122211222122222233558222123222222222122212 +1214725411223122221151223234224526242222227222222222122122224233121124222922272115522442423712321242 +3432323222343226342223332323131332253313332233363223342336323236212323313223223321312333323432223532 +5356722933447877334775367528685644487657537464764775376384795256932486223374637637634639824576336333 +1344242123232233221322222744343322343225423242342622112233232721233322132244524312433323132232332222 +2225353222521434133422455312121544143314242341523244354134215445512133154344441241235411122241146789 +6312227332436353234641223452133253233433543222333333345323243223355222533215523142333622315229233343 +3442322231242222232223144242332223312422154322432122512333121332222322262411332222331222334534123221 +3371225333126223333333323312633232533333434323223343223423212323222531532515221213532332132223323243 +5325425235722532121243225215525418132532621266432222561222514216224432231234156622182223532555422532 +2383832323354324146634333633332552336432833352438532733333431352233435333633413615341313631323332333 +1222522452134222327422122222322212232212222221222231233232632122144142222333322221222222221222213223 +3383333553412533333353473333544513453393535257583333637323323453323271336589556335434753333333445433 +2444184422752421862341565221423322552122222422222224321263522513471244252144145313423223414255254623 +3345223271354444333434343354243334435333335343933354433333423433432243353343453233424356453533331423 +8662362213536433263438433831236244226324632332422323332233223427649435362229362113323353942357236162 +4429332621717829125964381858849428552571843425389718574628341727533961444823478622532223855849713224 +2423233123233153325193413333333223513233333123323323323242133433733323313453232124331333332432332323 +2223532626628445654465446717616646525563526434328594335474435764585565466335666335256468256343543152 +4434356433534533244424513554344554426244322555559363434244435123544463442345342436143435234434324442 +2232346222124323343232236242333432243432323275227325332521353222324333535535333122333333345533234423 +3334346434153454333333443444231454424464442336335344644334444444444444442434363433472544444443244434 +4123222213532412321332321252313511212232523222222223222252442222232342224535123122322225311261252222 +1133664743222344525254734444454243535533225533354334454432487372435583334526343548354554543537647132 +1124522642136422133462222233332232224222212324342222422212173363253112323122212185232222134423322531 +3625552645325643523523626352182432442352822462352556321825622244233421355256652225514242733444654533 +4121221221321241121131252222226221122222422221212221122242221221222222224221212133542123221221223221 +4233335343332333325333332333335324232133323253334242373343434531331232437435314336333225334532333243 +3332324173333343437342354324322343332423272242221248322224221232353432223224224433333314232322335232 +3488854754415831286313732382313378851347661551526457831633587588422324437687873648177188134185235339 +9955446675832864322914452826637683656542666758461825387134455252833595464554223633522551665175567652 +3343326133241371143222233314226533372336322323213323222323325322352363233242333351222773313435313331 +7222332572232233155582377262856426223332632223323237444212423322142445514441632233622512243352133222 +5927331546522122552112474824232172343244227225713369777227758232563236222265351273232763336552221585 +4421241124242443114134342112433114224243344313144112432424441213124123344143434131131313412131456789 +6939562135542475464943676867358743322348538933277386996738966346667587838276945757622745345599633378 +2342213123343222324433226133244534331334332312332333332225312331132312335413452322235313133421214214 +2312213433438323323232363322232553888324633332113422323453322923343431372622233431323233212633135223 +1222223123333218432232423724342214332333233224213433213422521334332373533332726647765733342233244232 +2332341334131333232423213222216343422342124422434342713233432227332332821132534424233343833131822234 +2423333335336313336543331143335332433333232433363243234363332363334333462437363333243433234334453532 +6422242222326221222232222163322253243423622452233321312232422231323223382522223232222222222322462322 +6777977587776776667448955987479778766577864566864257697775776275675775866655767679555786667673765776 +2313342543515333233313334123333132333333363334342333314323343323434313323333433233333333323333349322 +2122222422221222522222222222212323122222322221233224126312223222212232122222124322122222121222312221 +1243133134211422323222342224133431122444222436112323221242212241234122222122461213322241222122131213 +3111222212274525446125524344433544222255432314221242245285426312422444313431276222258383122541345221 +7323533623511443435513433155833332324343343335154343243634453435332334333564354434535345335343524233 +1337346746733871442436239546673467544435997136577473232254634753545747433392553899627316421222494448 +9484943925215475344233682872247983846394779423751336229534968641441966365463563884754429824332773283 +3322233241424124213233224222121224111522333426222123342442212312233234232133421332333422222122222223 +2132162525212114423122225222325212221221224212412222222226213712221221622212222222222222322222223221 +4422223552423234421541112342132443323142242421324148443524436324432452432214214523445252424232432243 +2412212223242422231212221423511212244222115221413312333212224122222222222412242321231222222222221224 +7876778987998858865897776899868699887777673856958667958875969866956975895758779885855983666859977569 +3433634566353133353344133424233345244454233464343223624544341423441235533364334246442443332432283534 +4544494846586459574445654446769275463434288944445747864484859357349468444564563944677649946843478444 +4343453642553923414252463421433424236443332355274254531543554355215344454332412422434434342732524144 +3263323326523427343363122736342553433568327235247333353463323353535362337313333643233244342773436833 +2342616133825228232427222335263622762233223324122261224437643111233232934422382423268223373664221543 +2222315222422322332262321252232313222221222223221262262312223252622222222222322311266521222212231222 +6432424944564434433442434443524523753446334444233333443432443242147482422343243933144322343522343544 +2312222232222222221233137252322131432221323212223322322222222322212132122221223212221222322213322111 +4545757236745855656547668553776547748467255464872946574346775258533453544542542354333495461756573556 +9748738846588978488765229448753833669657858728647745985799945548774224687999889776885886276655768785 +6445545445455255543354455554652542486515554325455456442434523552554344445762455242345153532545143654 +3333333123331253333336373332312425333343444333223333324123347222422333433223433333332824324342223233 +6556833685144584756564347345646545245538643637314563542555681636336575727857445552555576336756253474 +2282246222321322322222422122212252221221321212121222212122122222223622512222216322221221211235422125 +4422133323463331252132323421321236323322322333245224254233224234323214229322133823231333333233213622 +2222122322222522211222232322231123222222131223121222221282222212421222212352212222122392212112231211 +4244443443354335464433545494354355434354443443342443444343342534535245475444444313524434434444423434 +2231222311222221122213222233121222122332323221332543232322222121222222322221223411322222322231232241 +3324213244333242341411454513312226336533322742323323323336843213462363341333333295235332333335422332 +6285765544662843678955238675865556938277564688327872746163577415134782582598678363356615366665847658 +2142323622413332232223242632326322342332333323142223242224334312212332433233434238153323223522224365 +3124233573622422534244114523413622343153223246252213212244333243541242224126232623522433144142222322 +2242122525321213244423244234434312345424592234332325113232667442733332264224336424514242323445223614 +5333293733443324333242332224432534833333334335233323134525363644532346139333553143142274343438466733 +3446655334443357524532455514445545633555443244243234754444446514642345535436353355852464244256445426 +3594537734345444465463655654626533347776564446465533343534577553832544353525334843545365546453353666 +6322232645359164222643233246382242313417929762332533243534342545464438422412221522397454434361585412 +4362224224342236432222123337225214423143233746726352274232232462423274637223325351242337332333253122 +2324813833133975242362236333324333423242332112343332246333354332233342335636232334322433333431432333 +3466565666665553556554455365446656733436624345354365656468462255555236359566676266684345366658554653 +4434664226422645314358554341452343136552524243322546336534223436334747316934632715233244333733427213 +2213112212333122133444223213212242424162442233442342249443224432313243332341234421954362324135432432 +4231331442154345325443434354444444442433323446536224444348322424344244444344242444441444315344442442 +2223241222222112322215222224122132441221342222222232212122222522142621231221211222234232221213212212 +2557275346374328766332733645835253275555263132845333327575357862314835477658823522443865464435223273 +4526213231235754822477244442664784429224262223382338546724844726529262242672147853674638741553457484 +4484293545653344433332324271444324554241415553243244454223365415322452312334244225232444365444144325 +2243122222244313322223223223421322222342222242122222222242121222122223242222221222422113221333232522 +3552535537343555454343427345485624533543332233546313525745693453376334323234332483463824545347577356 +2893847327944131164113722727741646243748826227122447222327578633217728285226822344682265865642318822 +2323233122342323311352223523332634263233133213232212344624223622331222122622221337222231332223223215 +4762734388684535673367562665544656452585769453436524367447145769444554765332545867535354244634844553 +2232423271222273232233521315252241142432121123221232532332172222322726222225452212532216222123222342 +5253535543553434152355355555558322347552633575451245484442343334425255357424564448354314352293555125 +3132122111271233132222222223223422222224122221242223211244242331222223243222232323222112222222262232 +3123112532223265542421532223342324614721214733432532564524322222352321452453442632323234123144664542 +2442224311143255321124232367515224325353652332632334246322162137332332326244312332253262234625223233 +4413444474628353343452474636444442553214434553343344323384544613654323439433347453355433434233333435 +4122212122222222212222132222222232231222221341122221222222222222213221332124122224212332222233221213 +3222227142212322244622326222222172222433221324343234223222112321344352323325322211612422216321232212 +3253356368425122444463453764659324527227474263432625266192252375423663716433632676525622634622725424 +4234322224224223212224221422223223262232222232221244423625232221343222421322113242432232221222222322 +7193443462483583354543446524344442624643549433464125454212452467745565348444254767482444445554143527 +3322632433234333443333333332332333333343344834264643334336444334123243333133333333232233533313213333 +3223231134321322333223312232532122433133221232333423235223261322322227222822333313232323233322336332 +6648595464445663455985874435856635354586954644548454595867586966655586395824568656582636564464446556 +2234333331375827934432664233523932364634352333232442646433364323334533343243313432333343333333433426 +2526355458165343365443433253352253533322455353143455334324653355243334433324325314345243345345334454 +2221231222222212226321211332132122232251221222521332222222212322222233212221211231224324241523322223 +4522314356625524442243553324222425225546225576865853415413561454592361265452424524653125537425752243 +5523321443522732222253143541354563554456452334521222192522355522355532524126224583722625174523864245 +2722323242514756313222255232323221222514234322221513522312322225223241522222222252222262111212922352 +1123222222123112314112422222341222222122322143222322235142244215221822222722432142124232111212112532 +3313635332223434322222633231338663364325511223222234331655633162442826256352313232325332323116393233 +2332321132462624611963264228265576442132286256734225225276455611774224262417122265457262622662415257 +2222224522222223223222424232222224242212312322422311231212222122224224232124222423332124422322222354 +5232832621232122329332335728232133333332425232323311227532332242232382623522565213211435624233335523 +8347316436438546536527776437387236324543234758445542232243232438248159346538656582636696125973423358 +6225465346363346625242244662335432535324252443454354463323513144236586441546233353242545133545446533 +2325242221112324322323141221442221221344344334222232134232242223424253222254232252242332233232432222 +3322224222232222223234113247214422131221232112222223122732312322345431222122123212222413433232324233 +9384287434485534245544434536825447323537759567764774585755946246637835245944546415945452573574735538 +3576544464544524634556474565444547374467346434473444247543784344653446554656444244566553466344433334 +3379233262233223323533333321322212335322332623333313334323346253323313323343243632323423433233393232 +2223223222431322423321222212422222622121315212421221222221223321232212222221242213342222222122224212 +3333233242226332362533435233233322221232323252532323226381222323852313433232213222223323422836322332 +2869957667585574448565453455569625274633455552596543956554674455638278563575667447746265664374896966 +4448544735351475767334332353433334337365254224355554342476477354967884335336349243374765476414441834 +5232221222222222122211222322221222322222242222222222252122232212221231212222522224222223122232222122 +3224255241642224514133222231232223312223222223212123224422223222223252321244231312322322122442212232 +5214333262337445452922435231325724184224244342424245237235371428142821852614663444236263821222245564 +4467934453364644495445493736543742825744255563417554288935736844843395434435386433232435645575531526 +2132134422231312132224223332252152652232411222642322332221274223212222242274222123442322222222238231 +8622224232322312323422222123212223222121322222132222222523222122222222132222122242511123222121212211 +2232222222223322421221123222112222222212522212221222222222212242522125222124222212223232312212422322 +3333242331134213316633342231343333232833233333223333423343224223433333633325343324243733332323333533 diff --git a/src/Problem3.java b/src/Problem3.java new file mode 100644 index 0000000..f53ad48 --- /dev/null +++ b/src/Problem3.java @@ -0,0 +1,41 @@ +package src; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class Problem3 { + + public static void main(String[] args) { + String filePath = "inputs/inputProblem3.txt"; + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + long total = 0; + while ((line = reader.readLine()) != null) { + total += maxTwoDigit(line); + } + System.out.println(total); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static int maxTwoDigit(String digits) { + int maxDigit = -1; + int maxValue = 0; + for (char c : digits.toCharArray()) { + int digit = c - '0'; + if (maxDigit >= 0) { + int value = maxDigit * 10 + digit; + if (value > maxValue) { + maxValue = value; + } + } + if (digit > maxDigit) { + maxDigit = digit; + } + } + + return maxValue; + } +} \ No newline at end of file From 318edb6310f86f571b2e5703f47430bfbdd92460 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Wed, 3 Dec 2025 22:23:56 -0600 Subject: [PATCH 8/9] solved 3b --- src/Problem3b.java | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/Problem3b.java diff --git a/src/Problem3b.java b/src/Problem3b.java new file mode 100644 index 0000000..d17bccd --- /dev/null +++ b/src/Problem3b.java @@ -0,0 +1,39 @@ +package src; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class Problem3b { + + public static void main(String[] args) { + String filePath = "inputs/inputProblem3.txt"; + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + long total = 0; + while ((line = reader.readLine()) != null) { + String maxDigits = maxKDigitsString(line, 12); + total += Long.parseLong(maxDigits); + } + System.out.println("Total maximum joltage: " + total); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static String maxKDigitsString(String digits, int k) { + int n = digits.length(); + char[] stack = new char[k]; + int top = 0; + for (int i = 0; i < n; i++) { + char c = digits.charAt(i); + while (top > 0 && stack[top - 1] < c && (top - 1 + (n - i)) >= k) { + top--; + } + if (top < k) { + stack[top++] = c; + } + } + return new String(stack, 0, k); + } +} \ No newline at end of file From bcf108f604bab02e9ac57de83abf4d7b2661f7f8 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Wed, 3 Dec 2025 22:24:44 -0600 Subject: [PATCH 9/9] fixed 3b solution --- src/Problem3b.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Problem3b.java b/src/Problem3b.java index d17bccd..67563b4 100644 --- a/src/Problem3b.java +++ b/src/Problem3b.java @@ -15,7 +15,7 @@ public class Problem3b { String maxDigits = maxKDigitsString(line, 12); total += Long.parseLong(maxDigits); } - System.out.println("Total maximum joltage: " + total); + System.out.println(total); } catch (IOException e) { e.printStackTrace(); }