diff --git a/build/classes/AdventOfCodeDay8/NewMain.class b/build/classes/AdventOfCodeDay8/NewMain.class new file mode 100644 index 0000000..87f33af Binary files /dev/null and b/build/classes/AdventOfCodeDay8/NewMain.class differ diff --git a/build/classes/AdventOfCodeDay8/Puzzle1.class b/build/classes/AdventOfCodeDay8/Puzzle1.class new file mode 100644 index 0000000..2f2c9cf Binary files /dev/null and b/build/classes/AdventOfCodeDay8/Puzzle1.class differ diff --git a/build/classes/AdventOfCodeDay8/Puzzle2.class b/build/classes/AdventOfCodeDay8/Puzzle2.class new file mode 100644 index 0000000..00dbfbb Binary files /dev/null and b/build/classes/AdventOfCodeDay8/Puzzle2.class differ diff --git a/build/classes/AdventOfCodeDay9/Puzzle1.class b/build/classes/AdventOfCodeDay9/Puzzle1.class new file mode 100644 index 0000000..9b18858 Binary files /dev/null and b/build/classes/AdventOfCodeDay9/Puzzle1.class differ diff --git a/build/classes/AdventOfCodeDay9/Puzzle2.class b/build/classes/AdventOfCodeDay9/Puzzle2.class new file mode 100644 index 0000000..a946429 Binary files /dev/null and b/build/classes/AdventOfCodeDay9/Puzzle2.class differ diff --git a/puzzleInput8.txt b/puzzleInput8.txt new file mode 100644 index 0000000..17ea830 --- /dev/null +++ b/puzzleInput8.txt @@ -0,0 +1,647 @@ +acc +49 +jmp +274 +acc +49 +acc +49 +jmp +476 +jmp +409 +jmp +269 +jmp +1 +acc -11 +acc +5 +acc +24 +jmp +17 +acc +50 +acc +9 +acc +37 +nop +266 +jmp +60 +jmp +329 +acc +18 +jmp +327 +acc +22 +acc -14 +jmp +281 +nop +287 +acc +6 +acc -1 +acc +22 +jmp +302 +acc +44 +jmp +576 +acc +10 +acc +33 +nop +219 +jmp +534 +jmp +89 +jmp +523 +acc +40 +acc +22 +jmp +53 +acc +6 +acc +39 +acc +26 +jmp +81 +acc +18 +acc +20 +acc +31 +acc +31 +jmp +244 +jmp +1 +jmp +237 +acc -5 +acc +2 +nop +209 +jmp +222 +acc -16 +jmp +277 +jmp +48 +jmp +317 +jmp +564 +acc -5 +acc +11 +acc -10 +acc +1 +jmp -5 +acc +46 +acc +14 +acc -3 +jmp +393 +acc +8 +acc +21 +acc +6 +jmp +142 +acc +22 +jmp +188 +nop +258 +jmp +505 +acc +27 +acc +13 +nop +428 +acc -12 +jmp +354 +acc +0 +acc +0 +jmp +54 +acc +11 +acc +32 +acc +17 +nop -3 +jmp +182 +acc +24 +jmp +18 +acc +1 +acc -4 +acc +13 +acc +36 +jmp +118 +acc +48 +jmp +383 +nop +101 +jmp -94 +jmp +181 +acc +43 +jmp +123 +jmp +285 +acc +10 +acc +13 +jmp +261 +jmp +98 +acc +0 +acc -12 +acc +28 +nop -3 +jmp -54 +jmp +509 +acc +34 +acc +48 +jmp +1 +jmp +20 +acc +13 +acc +6 +acc -5 +nop +267 +jmp +299 +acc -13 +acc -1 +acc +2 +jmp +349 +jmp +294 +acc +20 +acc +8 +acc +17 +acc -1 +jmp +242 +acc -11 +acc +45 +acc -13 +jmp +98 +acc +44 +jmp +61 +jmp +471 +jmp +344 +acc +38 +jmp +1 +nop +490 +acc +45 +jmp +276 +acc -8 +jmp +20 +acc +49 +nop +170 +acc +44 +jmp +100 +nop +236 +jmp +209 +jmp +45 +jmp +1 +nop +464 +jmp +311 +nop +238 +nop +212 +jmp +236 +jmp +328 +acc +20 +acc +0 +acc +46 +acc +28 +jmp +12 +jmp +52 +nop +300 +nop +420 +jmp +149 +acc +38 +acc +23 +jmp +271 +acc +21 +acc +27 +acc +24 +jmp +371 +acc +20 +acc +4 +acc -6 +nop +24 +jmp -54 +acc -5 +acc +47 +jmp -180 +jmp +384 +acc +44 +acc +22 +nop +148 +acc +32 +jmp -107 +acc +25 +jmp +355 +jmp +1 +acc +14 +acc +11 +acc +36 +jmp +15 +nop +281 +acc +48 +acc +23 +acc +23 +jmp +35 +jmp +82 +acc +19 +acc +30 +jmp +319 +acc +30 +acc +41 +nop -176 +jmp +1 +jmp +79 +acc +29 +acc +41 +acc +32 +jmp -199 +acc -15 +jmp +402 +nop +91 +jmp -156 +acc +16 +acc +26 +acc +8 +jmp +282 +acc +12 +acc +38 +acc +37 +acc +13 +jmp -115 +acc -12 +acc -1 +acc +44 +jmp +347 +jmp -133 +nop +240 +acc +27 +jmp +321 +acc +16 +acc -9 +jmp +1 +jmp +348 +jmp +166 +acc -7 +acc +7 +jmp -238 +acc +26 +acc -5 +acc -17 +acc +30 +jmp -16 +acc +34 +acc +0 +jmp +66 +acc +26 +acc -7 +acc +49 +jmp +18 +jmp -80 +nop -131 +jmp +59 +acc -18 +jmp +1 +acc -6 +acc +15 +jmp -174 +acc +50 +acc +21 +acc +10 +jmp -185 +acc +49 +jmp +66 +acc +42 +acc +21 +jmp +63 +acc +38 +acc +47 +acc +2 +jmp +342 +acc +19 +jmp -224 +acc +0 +jmp +356 +acc +46 +acc -17 +jmp +82 +nop +85 +jmp +1 +nop +108 +jmp -255 +jmp -218 +acc +43 +acc +22 +jmp +227 +acc +29 +acc +25 +jmp +155 +acc +38 +jmp +298 +nop -74 +acc +23 +acc -13 +jmp -77 +acc -12 +acc +22 +acc +30 +acc -10 +jmp +225 +acc +48 +jmp +190 +acc +24 +jmp +1 +acc +42 +nop -10 +jmp +226 +acc +0 +acc +40 +acc +48 +jmp -311 +acc -6 +jmp -168 +jmp -70 +jmp +1 +acc -1 +nop -210 +jmp +186 +acc +28 +acc +15 +jmp -191 +jmp -158 +nop +23 +jmp +263 +acc +7 +acc +46 +jmp -121 +acc +37 +jmp -272 +jmp +1 +acc +27 +acc +23 +acc +0 +jmp -233 +acc +2 +acc -2 +acc +34 +jmp -75 +acc +12 +acc +39 +jmp -196 +nop -30 +acc +42 +acc +45 +jmp -318 +acc +15 +acc +2 +jmp +1 +jmp -27 +acc +14 +jmp +1 +acc +41 +jmp -310 +jmp -15 +acc +43 +acc -5 +jmp -130 +acc +44 +jmp +85 +acc -2 +acc +19 +jmp -164 +jmp +26 +nop -39 +jmp +238 +jmp -227 +jmp +1 +jmp -46 +acc -1 +jmp -305 +acc +43 +acc -4 +acc -2 +acc +30 +jmp +251 +jmp +1 +acc -6 +acc +47 +nop +94 +jmp -337 +nop +80 +acc +9 +jmp -139 +acc +17 +acc +20 +acc +0 +acc +22 +jmp -24 +acc -19 +acc +4 +acc +19 +jmp -21 +acc +2 +nop -337 +acc -12 +jmp -331 +acc +21 +jmp +46 +acc +44 +jmp -293 +acc +30 +acc +4 +jmp -124 +nop -101 +acc -9 +jmp +12 +acc +0 +acc +16 +acc +16 +acc -5 +jmp -121 +nop -267 +jmp -110 +acc +32 +acc -11 +jmp -283 +jmp -95 +acc +36 +acc +24 +nop -222 +jmp -236 +acc +0 +acc +0 +acc +0 +acc +32 +jmp +205 +nop -176 +acc -5 +acc -5 +nop -156 +jmp +68 +nop -367 +acc -2 +acc +9 +acc +42 +jmp -251 +jmp +1 +nop -409 +acc -18 +acc +30 +jmp -372 +acc -15 +jmp +155 +nop -353 +acc +26 +acc +28 +jmp -434 +acc +48 +nop +33 +acc +12 +nop -303 +jmp +21 +acc +36 +acc +40 +acc +21 +nop -101 +jmp -421 +acc +32 +acc -10 +jmp -254 +acc -18 +jmp -159 +acc +3 +nop -93 +acc +13 +nop -417 +jmp -334 +acc +36 +nop -305 +acc +30 +jmp +102 +jmp -160 +acc +7 +jmp +77 +nop -345 +jmp +65 +acc +16 +acc +42 +jmp -450 +acc -13 +jmp +106 +acc +11 +acc +14 +acc +37 +acc +11 +jmp -421 +acc +2 +acc +16 +acc +29 +acc +8 +jmp -201 +acc +48 +jmp -112 +acc -17 +jmp +1 +nop -460 +nop +129 +jmp -186 +acc -12 +jmp -340 +jmp +1 +acc +7 +jmp -276 +acc +49 +acc +29 +acc +1 +acc +43 +jmp -360 +acc +24 +nop -413 +nop -378 +jmp -68 +nop +74 +jmp +104 +acc +38 +acc +36 +acc +3 +jmp -117 +acc -11 +nop -153 +acc -13 +nop -125 +jmp -126 +jmp +79 +acc -9 +acc +39 +jmp -373 +acc +40 +acc +46 +nop -436 +acc +38 +jmp -347 +acc -18 +acc -4 +acc -4 +jmp -190 +acc +36 +acc +21 +nop -482 +jmp -286 +acc -15 +acc +10 +acc +5 +acc +17 +jmp -509 +acc +41 +acc +0 +acc -6 +acc -2 +jmp -344 +acc +2 +acc -8 +acc +28 +jmp -190 +acc +5 +acc -17 +acc +0 +nop -545 +jmp -234 +jmp -286 +acc +32 +jmp -21 +nop +1 +nop -1 +acc +1 +nop -465 +jmp +68 +acc +22 +acc +46 +nop +45 +acc -3 +jmp -309 +acc +45 +jmp +1 +nop -377 +jmp -261 +acc +18 +acc +17 +acc +5 +nop -336 +jmp -327 +nop -397 +jmp -492 +acc -11 +acc +21 +jmp -35 +jmp -169 +jmp -403 +acc +40 +acc -3 +acc -3 +acc -11 +jmp -357 +acc +11 +jmp +1 +acc -13 +jmp -467 +acc +3 +jmp -198 +nop -211 +acc +0 +jmp -481 +acc -2 +nop +27 +acc +28 +acc +21 +jmp -247 +acc -14 +acc -12 +acc +39 +acc +4 +jmp -61 +jmp -274 +jmp -299 +nop -538 +jmp -437 +jmp -540 +acc +38 +acc +14 +acc +16 +jmp -572 +acc +8 +acc +21 +acc +34 +jmp +1 +acc +3 +jmp -488 +acc -19 +nop -375 +jmp -126 +acc +7 +acc +46 +jmp -308 +jmp -52 +acc +14 +acc +23 +acc -3 +nop -375 +jmp +1 \ No newline at end of file diff --git a/puzzleInput9.txt b/puzzleInput9.txt new file mode 100644 index 0000000..2a97ba8 --- /dev/null +++ b/puzzleInput9.txt @@ -0,0 +1,1000 @@ +38 +18 +28 +41 +37 +17 +24 +45 +50 +35 +9 +30 +11 +8 +40 +43 +46 +36 +33 +19 +14 +32 +3 +7 +16 +42 +10 +12 +13 +25 +52 +15 +21 +18 +29 +17 +20 +22 +11 +51 +23 +24 +34 +30 +26 +33 +14 +50 +27 +28 +31 +36 +44 +32 +35 +25 +37 +38 +40 +59 +39 +41 +42 +43 +70 +55 +45 +57 +46 +47 +58 +80 +52 +68 +53 +56 +60 +95 +62 +63 +72 +75 +77 +79 +109 +174 +83 +139 +96 +91 +92 +98 +93 +99 +100 +254 +120 +428 +161 +162 +154 +149 +195 +153 +232 +334 +581 +156 +170 +175 +176 +189 +197 +187 +183 +190 +191 +199 +219 +220 +309 +269 +302 +372 +345 +751 +305 +323 +410 +331 +326 +332 +339 +346 +374 +359 +370 +769 +382 +373 +381 +419 +418 +439 +489 +592 +571 +607 +651 +669 +628 +665 +685 +709 +657 +658 +1068 +792 +705 +1151 +729 +1060 +754 +763 +791 +1010 +1342 +857 +928 +1146 +1163 +1178 +1297 +1515 +1648 +1285 +1438 +1315 +1362 +1363 +1387 +1434 +1459 +1468 +1483 +1492 +1517 +1926 +1620 +1719 +2091 +2003 +2020 +3237 +2309 +2341 +2475 +3011 +2927 +4242 +3640 +2821 +2893 +2846 +4540 +2917 +2902 +4305 +2985 +6130 +3009 +4728 +4094 +3339 +3722 +4023 +4312 +4329 +5294 +4650 +4816 +5296 +8142 +5667 +5714 +5723 +5902 +6707 +8625 +5819 +8708 +8067 +5994 +6324 +6348 +10231 +9006 +9608 +11115 +11625 +10653 +8641 +8979 +9466 +10112 +10483 +10963 +11437 +11381 +11533 +11542 +12672 +14635 +16106 +19949 +17046 +28483 +15814 +22914 +17647 +17620 +17985 +19604 +18107 +18445 +39446 +18753 +19091 +19578 +30985 +34091 +33726 +27251 +24053 +23075 +24214 +27307 +30449 +36137 +36430 +36092 +41861 +33434 +36860 +38669 +66586 +42679 +37198 +36552 +54997 +79211 +37844 +42166 +42653 +47128 +47289 +51360 +48267 +50382 +59505 +51521 +60741 +63883 +69526 +88558 +74396 +80523 +69986 +75221 +148063 +73750 +79851 +88719 +80010 +89294 +99788 +80497 +84819 +102158 +94417 +98649 +131211 +168409 +101903 +148702 +112262 +149996 +137633 +143276 +252154 +143736 +184607 +182248 +148971 +217026 +175653 +164829 +160507 +165316 +259246 +186722 +179236 +272769 +193066 +196320 +200552 +255998 +375556 +364416 +249895 +347564 +292707 +280909 +309478 +309052 +304243 +314287 +342037 +354889 +325336 +530804 +339743 +365958 +526800 +648795 +554792 +435234 +465835 +389386 +859035 +493259 +604784 +542602 +554138 +941502 +573616 +780122 +885693 +613295 +1376736 +963002 +669176 +1047397 +665079 +691294 +1567786 +1222411 +755344 +824620 +928493 +855221 +901069 +882645 +931988 +1334260 +1147386 +1096740 +1207681 +1127754 +1282471 +1186911 +1304589 +1278374 +1334255 +1446638 +1356373 +1360470 +1420423 +2010399 +1579964 +1610565 +1951961 +1656413 +2011531 +1737866 +1756290 +2660962 +1814633 +2214459 +2224494 +3076836 +3804458 +2628104 +2314665 +3184504 +2638844 +2915154 +2612629 +2690628 +4208068 +3531925 +2780893 +3000387 +5691015 +3190529 +3266978 +4537183 +3394279 +5315052 +3552499 +3570923 +4029092 +4039127 +4438953 +4539159 +5708944 +4927294 +5527783 +6661257 +5251473 +7833232 +5781280 +5303257 +5471521 +8718312 +8505581 +5971422 +7610050 +7229656 +6457507 +11162549 +6946778 +11385731 +7123422 +7581591 +8478080 +8068219 +8578286 +8978112 +9466453 +10779256 +10554730 +13849499 +11222895 +13084705 +10774778 +11084537 +11274679 +15841734 +12428929 +12918200 +21777625 +13404285 +14525726 +15601502 +14070200 +14528369 +19752759 +19532842 +15649810 +16546299 +20550990 +22870738 +18444565 +20021183 +21329508 +21639267 +21859315 +31251312 +26488990 +26926271 +26988400 +23703608 +25347129 +25833214 +26322485 +44200246 +53248756 +22406676 +47692529 +28598569 +32196109 +34094375 +38185566 +34990864 +36567482 +38465748 +43188823 +40083832 +41350691 +61082775 +43498582 +51005245 +64298962 +46110284 +47753805 +48239890 +48729161 +60824078 +52155699 +86425456 +56501051 +79888638 +67186973 +60794678 +62692944 +66290484 +69085239 +71558346 +73456612 +105881767 +78549580 +81434523 +123487622 +84849273 +98265983 +91738472 +93864089 +148239523 +94350174 +99909504 +96969051 +100884860 +123688024 +145014958 +117295729 +119193995 +142581582 +127085162 +128983428 +135375723 +139747096 +166054290 +159984103 +195235034 +163398853 +173172995 +175298612 +176587745 +178713362 +185602561 +186088646 +302401386 +191319225 +194259678 +196878555 +260868963 +243466442 +236489724 +244380891 +246279157 +248177423 +262460885 +256068590 +411576276 +321464369 +299731199 +323382956 +430469537 +494966233 +420054187 +351886357 +354011974 +355301107 +607954947 +371691207 +377407871 +668231610 +385578903 +757270110 +433368279 +479956166 +623114155 +480870615 +490660048 +494456580 +562192084 +651617556 +579451546 +621195568 +644847325 +675269313 +677394930 +723577564 +705898331 +707187464 +725703181 +862351255 +726992314 +749099078 +1108637592 +818947182 +971530663 +1430765028 +1371839639 +913324445 +970616214 +1146074136 +1322242255 +985116628 +1200647114 +1513968811 +1286639010 +1224298871 +2430879847 +1320116638 +1352664243 +1383293261 +1450569878 +1413085795 +1432890645 +1719715292 +2559207470 +1568046260 +2415881656 +1732271627 +1790477845 +2131190764 +2920362406 +1883940659 +1898441073 +1955732842 +2185763742 +3415996475 +2209415499 +3241047723 +2510937881 +3905479034 +4386612689 +2672780881 +2703409899 +4056074142 +6336358881 +3018616138 +2845976440 +3000936905 +3358524105 +3300317887 +3451986919 +3616212286 +6204500545 +4069704401 +3782381732 +3839673501 +4917057211 +3854173915 +4141496584 +7441814471 +7310752124 +5450463222 +5214347780 +5376190780 +6526954796 +5673717786 +5518757321 +6844906483 +7757708870 +5846913345 +5864592578 +6146294327 +11360642107 +9504818432 +8369044130 +7068199205 +7398594018 +12444389985 +7622055233 +7636555647 +7693847416 +7995670499 +17126873665 +9355844364 +13155312968 +10590538560 +14881009212 +11192475107 +10894948101 +11365670666 +22973787010 +11383349899 +11711505923 +11993207672 +12010886905 +12932791783 +18781943917 +14466793223 +14690254438 +15063869704 +14704754852 +15020649251 +25585202539 +19059518082 +19019905546 +25958817805 +18586209059 +20739194263 +24866818891 +21973888459 +21485486661 +22087423208 +25897229959 +22905835006 +22749020565 +23094855822 +23376557571 +23704713595 +29395009290 +24943678688 +29171548075 +29710903689 +35803063967 +34040554797 +39798712345 +29725404103 +37108072459 +37606114605 +48784922185 +39325403322 +43488214828 +40071695720 +60746742655 +43572909869 +44722909024 +44234507226 +92357832054 +45654855571 +52144029855 +46453734160 +46471413393 +47081271166 +48648392283 +54115226763 +62549793293 +58882451764 +91315778392 +73298313972 +63765958900 +66833476562 +76433475781 +90377764595 +89750144460 +79397099042 +97798885426 +83559910548 +94186922483 +89889362797 +87807417095 +114693823148 +112997678527 +92108589731 +92126268964 +98597764015 +227691501675 +100586640156 +95729663449 +152927557888 +116665020056 +121432245057 +159469091920 +130599435462 +140199434681 +143163057942 +156583621022 +243749698098 +183537080544 +167204516137 +247276509015 +171367327643 +173449273345 +177696779892 +179916006826 +235271647673 +184234858695 +187838253180 +222018885213 +187855932413 +395468158558 +307403950818 +320132074025 +535667593239 +238097265113 +371393012957 +261631679738 +297803951599 +270798870143 +545501215931 +365181943155 +323788137159 +351439374832 +573164938450 +338571843780 +351146053237 +448495650035 +353365280171 +365552712305 +364150865521 +375694185593 +449469932918 +739845051114 +559435631337 +511644069572 +569035630556 +499728944851 +568602821742 +642191883100 +508896135256 +532430549881 +600203523518 +662985894754 +594587007302 +662359980939 +907607474336 +1008905564255 +689717897017 +702722709301 +995557163271 +1564592793827 +815022645223 +717516145692 +729703577826 +887338255165 +825164118511 +1442567760415 +1008625080107 +1324290585128 +1214366778873 +1685275060288 +1032159494732 +1231588716496 +1041326685137 +1103483142558 +1948934159473 +1194790530820 +1256946988241 +1365082690240 +2880065591108 +2240213796603 +1392440606318 +2379615439050 +1420238854993 +1544726223049 +1447219723518 +2812302413758 +1542680264203 +1554867696337 +3705229709619 +1833789198618 +2298273673378 +2040784574839 +2550702866076 +2812679461311 +2811814684578 +2678808440014 +2272915401633 +2615029385813 +5426844070391 +2677185843234 +3376469462821 +2839660329836 +4259899184829 +2867458578511 +3853141369715 +5397867592764 +6320259095432 +3281008922136 +2989899987721 +5679760992269 +3097547960540 +3583464839042 +8593174497065 +3874573773457 +9554334765726 +5321793496975 +7636368647650 +5292215229047 +4887944787446 +5829560317557 +6864473761178 +4950101244867 +5454689715649 +8707852992527 +5516846173070 +6742032351968 +6573364826763 +5965006539051 +5857358566232 +6087447948261 +11208203882878 +8954906526772 +8614394133610 +6972121733997 +8047649205407 +6681012799582 +9166789002504 +8824675018324 +17781183136114 +9838046032313 +10180160016493 +10404790960516 +10242316473914 +10342634503095 +10466947417937 +12197858972652 +14812265093004 +10971535888719 +11374204739302 +11481852712121 +11822365105283 +11944806514493 +17214438207911 +12538371365814 +12768460747843 +13653134533579 +20709263891851 +21554364755795 +17085803760098 +14728662004989 +21724169186035 +18662721050637 +19004835034817 +20018206048806 +20080362506227 +24908822021482 +20809581921032 +20584950977009 +21314170391814 +21438483306656 +39472302971669 +32291434633153 +22345740628021 +42309120163044 +23304217817404 +23767171619776 +36219273242728 +38743083556864 +25306832113657 +26421595281422 +28381796538568 +35538243926021 +31814465765087 +33391383055626 +45387194619884 +39023041083623 +38680927099443 +39085197541044 +45649958445425 +78108238624667 +41394532898041 +42023434283665 +41899121368823 +42752653698470 +87044491343466 +70495392864530 +47071389437180 +59986444862504 +49725813098826 +48611049931061 +59812978337048 +51728427395079 +67352709691108 +75032645212483 +54803391819990 +67062723638011 +81433580797913 +88465922335221 +75414817339291 +77766124640487 +84735155986469 +80984318909867 +80479730439085 \ No newline at end of file diff --git a/src/AdventOfCodeDay8/Puzzle1.java b/src/AdventOfCodeDay8/Puzzle1.java new file mode 100644 index 0000000..04a3c2e --- /dev/null +++ b/src/AdventOfCodeDay8/Puzzle1.java @@ -0,0 +1,114 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package AdventOfCodeDay8; + +import java.util.*; +import java.io.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * @author Strawluck + */ +public class Puzzle1 { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + // TODO code application logic here + + ArrayList inputArList = new ArrayList(); // creates an array list to store the booklist.txt data + BufferedReader br = null; + + try { // stores the data in booklist.txt in the array list + br = new BufferedReader(new FileReader("puzzleInput8.txt")); + String word; + while ((word = br.readLine()) != null) { + inputArList.add(word); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + br.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + String[] input = new String[inputArList.size()]; // converts the ArrayList to an Array + inputArList.toArray(input); + + Map lineCounter = new HashMap<>(); + boolean isDone = false; + int accumulator = 0; + int lineNum = 0; + + + // A loop that continues until a line is recalled again + while(!isDone) + { + String[] instruction = input[lineNum].split(" "); + + String operation = instruction[0]; + char sign = instruction[1].charAt(0); + int argument = Integer.parseInt(instruction[1].substring(1)); + + /* + If the lineNum was never added to the hashmap, then add it. If it + has already been added, then it is being called for the second time so end the while loop + */ + if(lineCounter.get(lineNum) == null) + { + int i = 1; + lineCounter.put(lineNum, i); + } else{ + isDone = true; + break; + } + + + if(operation.equals("acc")) + { + + if(sign == '+') + { + accumulator += argument; + } + else if(sign == '-') + { + accumulator -= argument; + } + lineNum++; + + } + else if(operation.equals("jmp")) + { + if (sign == '+') + { + /*if(lineNum == 647){ + lineNum = 0; + }*/ + lineNum += argument; + } + else if (sign == '-') + { + lineNum -= argument; + } + } + else if(operation.equals("nop")) + { + lineNum++; + } + + + } + System.out.println("Answer " + accumulator); + } +} diff --git a/src/AdventOfCodeDay8/Puzzle2.java b/src/AdventOfCodeDay8/Puzzle2.java new file mode 100644 index 0000000..6db784a --- /dev/null +++ b/src/AdventOfCodeDay8/Puzzle2.java @@ -0,0 +1,143 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package AdventOfCodeDay8; + +import java.util.*; +import java.io.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +/** + * + * @author Strawluck + */ +public class Puzzle2 { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + // TODO code application logic here + ArrayList inputArList = new ArrayList(); // creates an array list to store the booklist.txt data + BufferedReader br = null; + + try { // stores the data in booklist.txt in the array list + br = new BufferedReader(new FileReader("puzzleInput8.txt")); + String word; + while ((word = br.readLine()) != null) { + inputArList.add(word); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + br.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + String[] input = new String[inputArList.size()]; // converts the ArrayList to an Array + inputArList.toArray(input); + + Map lineCounter = new HashMap<>(); + + int accCorrupted = 0; + + + for(int i =0; i < input.length; i++) + { + System.out.println(i); + int accumulator = 0, lineNum = 0; + boolean isDone = false; + + if(input[i].contains("acc")) + { + isDone = true; + } + while(!isDone) + { + //System.out.println("hello"); + if (lineNum >= 647 || lineNum < 0) { // >= 647 because in the input array, it goes from 0-646 ever tho there's 647 lines of code. so input[647] doesn't exist + System.out.println(lineNum); + accCorrupted = accumulator; + System.out.println("Answer " + accCorrupted); + isDone = true; + i = input.length + 1; + break; + } + else + { + String[] instruction = input[lineNum].split(" "); + + String operation; + char sign = instruction[1].charAt(0); + int argument = Integer.parseInt(instruction[1].substring(1)); + + if(input[i].contains("jmp") && lineNum == i) + { + operation = "nop"; + } + else if(input[i].contains("nop") && lineNum == i) + { + operation = "jmp"; + } + else + { + operation = instruction[0]; + } + + //System.out.println(instruction[1]); + if(lineCounter.get(lineNum) == null) + { + int j = 1; + lineCounter.put(lineNum, j); + } else{ + //lineCounter.put(lineNum, lineCounter.get(lineNum)+1); + isDone = true; + break; + } + + + if(operation.equals("acc")) + { + + if(sign == '+') + { + accumulator += argument; + } + else if(sign == '-') + { + accumulator -= argument; + } + lineNum++; + + } + else if(operation.equals("jmp")) + { + if (sign == '+') + { + lineNum += argument; + } + else if (sign == '-') + { + lineNum -= argument; + } + } + else if(operation.equals("nop")) + { + lineNum++; + } + } + } + lineCounter.clear(); + } + + } + + } + + diff --git a/src/AdventOfCodeDay9/Puzzle1.java b/src/AdventOfCodeDay9/Puzzle1.java new file mode 100644 index 0000000..2b4fdec --- /dev/null +++ b/src/AdventOfCodeDay9/Puzzle1.java @@ -0,0 +1,87 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package AdventOfCodeDay9; + +import java.util.*; +import java.io.*; +/** + * + * @author Strawluck + */ +public class Puzzle1 { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + // TODO code application logic here + ArrayList input = new ArrayList(); // creates an array list to store the booklist.txt data + BufferedReader br = null; + int int1, int2, sum; + + try { // stores the data in booklist.txt in the array list + br = new BufferedReader(new FileReader("puzzleInput9.txt")); + String word; + while ((word = br.readLine()) != null) { + input.add(word); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + br.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + // Created the preamble that is using the first 25 numbers in the input + ArrayList preamble = new ArrayList(); + for(int i = 0; i < 25; i++) + { + preamble.add(Integer.parseInt(input.get(i))); + } + + /* + Starts from the 26th number and finds the first num that can't be added + by two of the 25 previous numbers in the preamble to equal the num. + */ + for(int i = 25; i < input.size(); i++) + { + boolean valid = false; + int nextNum = Integer.parseInt(input.get(i)); + + // Finds if any 2 numbers in the preamble can be added to equal nextNum + for(int j = 0; j < preamble.size(); j++) + { + for(int k = j+1; k < preamble.size(); k++) + { + int1 = preamble.get(j); + int2 = preamble.get(k); + sum = int1 + int2; + + // If the sum = nextNum, then remove the first number in the preamble + // Add nextNum to the preamble (to keep the 25 previous numbers in the preamble) + if(sum == nextNum){ + valid = true; + preamble.remove(0); + preamble.add(nextNum); + j = preamble.size(); // better way than this? to break out of outer for loop + break; + } + } + } + + // No 2 nums in the preamble summed up to equal nextNum so that num is not valid + if(valid == false){ + System.out.println(nextNum); + break; + } + } + + } + +} diff --git a/src/AdventOfCodeDay9/Puzzle2.java b/src/AdventOfCodeDay9/Puzzle2.java new file mode 100644 index 0000000..63a9c1d --- /dev/null +++ b/src/AdventOfCodeDay9/Puzzle2.java @@ -0,0 +1,94 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package AdventOfCodeDay9; + +import java.util.*; +import java.io.*; +import java.util.Arrays; +import java.util.List; +/** + * + * @author Strawluck + */ +public class Puzzle2 { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + // TODO code application logic here + + //start at the first line of input, and continually add nums after until it goes over the invalidNum; + //if it goes over, than start on the second line of input and continue; + + // TODO code application logic here + ArrayList input = new ArrayList(); // creates an array list to store the booklist.txt data + ArrayList inputNum = new ArrayList(); + BufferedReader br = null; + int int1, int2, sum, invalidNum = 22406676; + + try { // stores the data in booklist.txt in the array list + br = new BufferedReader(new FileReader("puzzleInput9.txt")); + String word; + while ((word = br.readLine()) != null) { + input.add(word); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + br.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + for(int i = 0; i < input.size(); i++) + { + inputNum.add(Long.parseLong(input.get(i))); + } + + long smallest, largest, encryptWeak; + + for(int i = 0; i < inputNum.size(); i++) + { + //System.out.println("hello"); + long total = 0; + smallest = Integer.MAX_VALUE; + largest = Integer.MIN_VALUE; + for(int j = i; j < inputNum.size(); j++) + { + total += inputNum.get(j); + if (inputNum.get(j) < smallest) + smallest = inputNum.get(j); + else if (inputNum.get(j) > largest) + largest = inputNum.get(j); + + if(total == invalidNum) + { + i = inputNum.size(); + System.out.println(smallest + largest); + break; + } + else if(total > invalidNum){ + break; + } + } + } + + //int[] rangeNumAr = new int[rangeNum.size()]; // converts the ArrayList to an Array + //rangeNum.toArray(rangeNumAr); + /*ArrayList rangeNumAr = selectionSortAscend(rangeNum, rangeNum.size()); + smallest = rangeNumAr.get(0); + largest = rangeNumAr.get(rangeNumAr.size()-1); + encryptWeak = smallest + largest; + + rangeNum.sor + System.out.println(encryptWeak);*/ + } + + +}