From cbc02f04d512d9375bb2e5f9d61fb1e34419d311 Mon Sep 17 00:00:00 2001 From: Tristan Date: Sun, 8 Dec 2019 01:16:47 +0000 Subject: [PATCH] day 6 and 7 --- 2019/06/input.txt | 1805 +++++++++++++++++++++++++++++++++++++++++++++ 2019/06/part1.js | 30 + 2019/06/part2.js | 31 + 2019/07/input.txt | 1 + 2019/07/part1.js | 91 +++ 2019/07/part2.js | 168 +++++ 2019/README.md | 4 + 7 files changed, 2130 insertions(+) create mode 100644 2019/06/input.txt create mode 100644 2019/06/part1.js create mode 100644 2019/06/part2.js create mode 100644 2019/07/input.txt create mode 100644 2019/07/part1.js create mode 100644 2019/07/part2.js diff --git a/2019/06/input.txt b/2019/06/input.txt new file mode 100644 index 0000000..8593a99 --- /dev/null +++ b/2019/06/input.txt @@ -0,0 +1,1805 @@ +P1T)TR7 +3NS)SL6 +JMH)MLH +K57)Z9Q +F4G)TCS +LLY)5D3 +6KR)J86 +SH2)TMQ +5WZ)Z2M +ZLL)XYP +F4R)NT5 +36G)8KS +7LB)YRG +V9L)585 +22Y)KT1 +5DN)KY3 +Q2W)YNJ +VRK)FVT +ZL3)59Z +75K)QC8 +GPB)5V8 +S4B)N8N +WQG)4R7 +HJ1)PYT +LD6)ZPY +72F)42V +GP3)GSX +QJV)RJZ +S88)3B1 +Q7Y)T1L +JL9)2CN +CVS)BZH +7DF)5T6 +Z4G)5SD +XHJ)SN3 +XF7)J8C +K3P)6S7 +JLM)7KS +6JS)75X +12Y)CRB +5GS)71S +2BW)RT5 +X7F)1VJ +H9T)L2K +WKY)YPH +Z3X)MT5 +R83)HYS +7QY)YQV +LMD)SAN +SD3)C8V +44R)ZJG +78Y)X4F +NQP)9P4 +GQG)MRV +1ZK)1W6 +LWY)Z9M +NBS)8G7 +VTV)1ZK +L77)DDQ +Y9H)8KD +DTL)T6T +MCC)3ZX +7J3)YMZ +XS1)26Z +V2F)ZQ6 +68X)Z7N +F4G)283 +BX7)495 +CH1)7K3 +R2N)S99 +1T4)B4F +177)8W7 +N7L)3T4 +97G)F7W +QMJ)K3N +TTK)ZTW +NQN)698 +YQ3)R83 +TN1)76X +ZS3)89H +46Y)3ZR +56V)7V7 +J3J)5L4 +31N)NRZ +MJC)NFJ +8HB)S4W +L8N)YNH +MXB)B9J +Z12)7LB +7YP)M93 +4JP)FH2 +5QN)4SH +H2F)GWK +9JF)M3J +ZZJ)X6Y +PCL)J91 +FZM)LWX +9N5)2KQ +VLQ)KD2 +N9B)STL +M9G)DYV +NFJ)R78 +PZ1)R1Q +JMM)RJJ +NM8)KTH +V48)Q2C +QX7)9MB +SCG)JPR +N1G)96H +8BD)BSH +PMS)75K +J2S)ML9 +L32)29L +TQS)VN8 +ZJG)1M7 +PT2)JWZ +7Q4)PVJ +38Z)TD4 +LJM)676 +VRK)Y9H +ZLZ)KF2 +HYW)XCM +L3Z)M3M +9H7)FDW +BYQ)C9Z +4H9)PHX +TLQ)Z99 +7WW)BNC +NS4)TS7 +CF8)PMS +BHJ)19P +CT8)4Z5 +GDR)61S +Y46)36B +FM3)565 +5PQ)VMG +JQ4)PSS +QLT)2MX +975)DPS +DYC)XS3 +Y11)SD3 +YL4)9W9 +SDH)YFD +96R)X23 +92D)VZG +V7G)954 +CJ3)Y8F +GRY)45K +Z78)VM1 +CRB)2J3 +PTK)39Z +C8D)2VY +4R7)16Z +HQM)SCG +Y82)SC1 +CRG)RKZ +YSC)DWW +VH6)QX7 +GWK)WM2 +1W6)PWJ +LWG)B4K +B7Z)5GS +MS8)5FK +QY6)F5G +QB3)5R5 +TXR)V96 +QL6)PV7 +D5M)145 +K27)WTX +LB7)8BC +J1Q)V49 +RWL)SQ6 +B4K)M5T +Y1D)5QL +BJ6)4RP +BXH)QM7 +MPT)BVQ +G56)9V7 +NYP)9C5 +SDK)95K +1BX)3F8 +15N)4VQ +4V7)Z2W +S7Q)PDS +RM4)FYP +ZW3)7D9 +Z9Q)K7G +YKF)9TB +JG9)Y1R +VMD)NQP +5B4)WQ2 +D5J)63S +VKJ)MC9 +3RN)32K +BRK)PXV +P59)VKZ +PSK)6KV +C6N)RHK +11F)RPT +Z8Q)472 +V3D)97S +8J4)1T8 +S8T)W6D +PVJ)FVR +CRB)NDJ +26Z)7GC +YZV)4J8 +6BK)9S6 +5SD)VZB +FM7)L76 +QG6)XZM +DDQ)46Y +WNK)F4G +W1R)L1Q +T1M)S9Q +GWP)Z59 +9HD)K88 +XKJ)VJS +YG7)BDZ +3T4)CH1 +WTX)FM7 +31W)TP6 +7ZN)TH2 +D1Q)MVY +Y9Y)K93 +VN8)75L +VSJ)44R +D95)ZLZ +3YQ)DC3 +T15)HC3 +HRV)K9F +3F8)D5Q +RRF)Z78 +XZM)73S +GBK)82T +HWF)LZ9 +SWS)9LG +TJL)Q5V +MYB)7F1 +3Y8)PV1 +DD6)6HF +X49)C8D +QC8)ZW3 +9MS)9VX +49G)GXH +5W9)4JW +6TS)3W6 +D4P)C12 +BNJ)YTY +3PP)36K +XVV)STY +SL6)TNL +R2B)N3R +RM9)SWS +X8L)WH7 +4SH)1CF +R6P)TRQ +MJM)727 +Q7C)RNF +NT5)F4M +2ST)41Z +T5S)HVK +8KP)P59 +FRK)DR3 +SR2)F4B +BQH)NF6 +SL5)5BB +9V4)K27 +D97)KLS +42B)NS4 +RDN)Y9M +2Q8)H2J +Z6D)GDZ +HTZ)TZX +DB1)5P5 +FVR)Z82 +PD2)L32 +37G)M49 +8PV)6JM +7LJ)8H9 +69P)BXH +ZQJ)924 +HSR)DTJ +WF2)CSV +53J)SJS +L94)QGJ +HX7)K9J +9W9)T2D +YMZ)VD5 +SJV)138 +V9H)JGY +BJW)78V +CZ2)TR8 +MKC)W5R +2CN)YG8 +BFX)7QY +MB1)54Q +SVM)QPT +Z21)R6P +YW4)FJQ +S1W)NM5 +919)975 +RFQ)1JT +53G)6JS +R2B)DLB +8W7)2BW +KLS)4CG +3L6)YJY +56K)5QF +S99)72L +R5G)2QV +C6R)9HD +676)3B5 +8N9)24S +ZYN)ST9 +7TB)S6L +689)MBJ +QGS)XZS +YGH)SRP +865)H27 +YJY)RHY +JTZ)C5T +JZB)6F3 +2Q6)YG7 +6LZ)R9Z +F5G)CQ3 +NK6)N1C +R41)49G +GNC)J8Q +258)X6J +P67)7YX +7J8)PWS +P5B)YW4 +N18)T89 +W67)RFQ +1CV)YBH +Y73)T1Z +JM9)TPJ +RP6)783 +Z4J)LB7 +K3N)4F4 +6JM)NPS +RZD)2ZC +JTZ)QBX +TCS)3LD +HQL)CW5 +J82)XJ3 +6F3)8ZN +NRZ)X27 +4DK)FB1 +339)WFC +973)S4B +D4N)X49 +LWX)FCP +45K)TT6 +F1B)WJF +YPH)ZPJ +BVD)DCC +3FR)5MZ +CR2)3PP +FZG)SNR +18M)RRQ +2PR)C7H +DX6)DJV +VMG)NK2 +843)WLT +MY4)XPZ +QPB)53G +RZH)B2K +13Y)B95 +6LS)1T4 +G9N)F55 +RLR)9R7 +8RV)HCG +73S)K57 +J9N)QD8 +576)QGS +J5Y)4CC +F25)1C6 +52D)BQH +RX4)WVZ +X1Z)BV2 +4ZX)F4P +GMJ)4D7 +JB5)GT7 +KTL)T4S +W8N)XCW +J8Q)N2G +Q98)YRX +WV2)SLL +12T)53K +6S7)CK5 +2RW)WPR +S84)F25 +RV4)PB5 +QZG)15P +8RQ)9KD +Z45)96R +PVJ)F4R +HMT)F54 +96H)4Z8 +TS1)PCL +VS1)G33 +Q6L)JZB +XPM)WF8 +QJF)2YY +PV7)VTV +MSJ)KPJ +RB5)61Z +SFD)TR5 +8CJ)MYB +7HW)DNT +5FK)CPL +2BP)2FK +6D5)48N +83G)956 +8HB)J3F +JGY)XN1 +ZRD)FSF +4CG)VYJ +6QW)FHP +T9P)KW4 +B9J)GF6 +X8C)8J4 +ML7)R4C +W7D)1VB +Q6Q)NQN +Q69)ZYN +53K)5TX +9TB)973 +BSR)HK3 +T8X)GTN +29L)ZRB +GG3)JL9 +WKN)D4N +32K)W69 +JPR)WDB +4H9)PK2 +4BL)X6X +ZXH)KZ7 +WGY)D1N +DF9)49P +KBD)WFB +71S)5B4 +5HC)D9J +SGW)R6R +QSF)D97 +KC4)4B6 +8MN)2T7 +3MC)C6R +CY8)CZ2 +2QR)M2X +6T1)F1B +TFZ)YRV +WGJ)R31 +JW7)HB7 +T9B)GX7 +YG8)W1B +51W)DCP +T89)NY7 +P3G)PCS +GYH)DNM +KN3)27M +VZB)1W8 +Z6S)LD3 +SYN)4D4 +DR3)3FG +QD8)J1Q +PCS)NYP +L65)DN6 +BDN)WGJ +5P5)WD2 +DCC)DKR +Z1Y)6CX +T6L)Y25 +PHX)VKJ +STJ)PGB +HVK)SYM +SLC)56V +CV8)F1D +CK5)R5X +YND)6T1 +11S)Z1Y +MTL)M9M +8XF)D96 +85Z)NSY +TQ9)QR9 +RHY)X8L +TS1)89S +5DN)88C +W3S)GG9 +DTJ)T5Y +YK6)H2M +Z82)J2P +D3G)RL2 +61Z)11F +19Q)ZVW +X6Y)RC3 +NBS)Z69 +1VJ)Q7F +2F4)9M6 +8BD)CBZ +1JT)2ZB +4FG)CJ3 +GG9)177 +36B)T44 +WGV)2ST +H9Y)WV2 +WLN)9MZ +F24)46P +FYP)9DF +N86)6MT +GP3)3YL +F55)CSK +3HH)J1F +Y5V)QQ8 +D3S)K1V +2HC)1H1 +KM9)3WZ +5L8)WXB +TZB)F7H +26G)NK6 +NR1)B3H +GXH)R45 +QFT)DC7 +4TP)71Q +7QY)B5P +F4M)ZNC +PSB)2Q8 +TRQ)N5V +BGZ)4SN +NDP)8KT +S4W)7TQ +9B3)T4T +82T)W47 +NCJ)TFZ +LZQ)T6L +R31)35H +YTY)JS5 +BNJ)1RV +WTB)RV9 +SK4)NLQ +8Q2)SWW +H3X)YNQ +WDX)PD8 +F1J)7JX +Y9Z)VW4 +7K7)MF3 +13R)B8W +4SN)X1Z +5GT)KM9 +PXV)RJK +KF2)9JF +7D5)85C +DQK)B87 +C5T)RP6 +BHL)NM8 +ZQD)287 +6YR)2SY +QSG)H7H +2YY)M62 +C7W)TWW +96K)C97 +3GG)ZZW +CSV)6LS +SJ4)6RQ +15X)X9J +J5Y)8BD +T82)WGY +5WP)72Z +FW2)KN8 +ZRD)2QR +Z2Z)5W9 +K7R)VV3 +MLJ)BDH +G33)LDC +543)15X +P7Z)21Q +T24)WCS +5YC)RCM +PMB)SK4 +YDB)S4M +HVB)R9K +C7Z)LSD +BZ6)LMD +N4M)7K7 +KYB)JMQ +951)DCN +9LG)ZQD +75Q)GHX +3CN)957 +S9Q)KWF +S44)ZRD +JS5)Y66 +MTM)B7Z +Y9M)VLQ +WM6)QV1 +XJB)T5M +PZC)YB8 +HG5)TZ9 +CW5)ZFH +NPS)T82 +JM6)WN8 +KG5)GDR +1RN)N3Y +2YF)FLB +P4X)F74 +NQJ)JXZ +J8C)6V4 +R78)GT3 +CPY)Q8H +NF6)V2F +ZG2)WKY +585)ZXH +P48)339 +ZPY)TJL +CHX)5J9 +YL4)Y73 +H9G)DSC +BDH)G5F +JVQ)S34 +Z3T)NPR +HHK)CL2 +727)576 +72T)CTM +RWD)GQG +CMB)TN1 +BRG)5WP +98Q)Z3T +NF3)JBC +KKB)K9D +T4S)7PW +4XG)GMV +H1B)S5L +J95)HSR +6FL)JDZ +GNK)TTC +VKZ)ZLL +7PW)R2B +DSC)QP2 +QTD)66W +XL2)KN2 +KDT)6SY +RNK)L9H +HWV)V3S +276)8W8 +7VK)RNS +3PM)DYC +WF8)RTT +13M)TZB +TNL)FNP +RNF)RJW +WYF)BRK +Y9P)PZ1 +Q9M)TS1 +JNF)QJF +S79)YFR +K4H)Y82 +LWG)NQ6 +DHH)ZS3 +8G7)S7Q +FJT)HHK +5PK)4S8 +CVR)P12 +R9Z)N9B +17Y)BSR +M7J)7NR +C6R)W1R +Y56)5GT +NT5)XJB +2Q2)SL5 +6NP)S31 +L19)2HC +TVT)415 +3ZH)S93 +91L)39L +FVK)N18 +R67)V8R +TMD)FL5 +4F4)SG2 +XBV)Z18 +GFD)MS8 +9V4)JNC +554)XS1 +9M3)18M +CTQ)HYW +LY4)WTB +HY3)LL3 +2J3)XL2 +VC1)YOU +JMY)RD8 +XK2)D5K +KD2)7J8 +JD1)258 +S1C)SLC +R6R)WXM +6MT)33D +QJB)4TP +287)CSC +FVR)JQ4 +35H)BCS +WQ2)YL4 +DX6)STJ +X42)348 +J3V)XDK +YSM)DZN +6LZ)ZQ8 +HVH)2TR +GB3)Y5V +FHP)Y46 +61S)6LJ +FPK)XTY +P1X)F6N +TZJ)YHR +XHG)N5L +8PS)4ZX +JNC)FFT +412)4XG +YQP)YST +GMJ)SYF +ZJD)FRK +Q23)DTL +V3P)W1H +KMY)H3X +C8K)TJD +WQN)5NY +XZS)3SY +PWJ)Z93 +37Z)BGV +CFQ)72T +GDZ)FCS +82T)WYX +DLH)HQM +MLH)Z8Q +9YV)72F +GX7)CTN +YW4)MJC +RWK)CT8 +2SY)QB3 +16K)MXB +2DQ)LWY +R6R)M4K +BZH)84R +CBZ)L77 +947)WYF +CT8)Q3L +DNM)15N +TX1)VBN +JXZ)3CN +VT4)3WX +3RH)STW +GRB)V7G +8FS)LD1 +3WC)51W +M1D)H9G +TSM)F8F +ZQ6)KDT +F4P)6FD +NK2)NQS +VXV)JFT +C97)C7W +1YR)VMR +YXC)LG6 +STW)17M +1V5)74R +6VZ)S9Z +WV2)SRW +R45)56K +75L)DD1 +7ZV)6LZ +T5M)T15 +RCC)D4P +3W6)5K5 +FBQ)TXR +7V7)VPC +TWW)M2Z +7DF)Z41 +Z31)8HB +M2Z)13M +ZZW)Q9M +5XZ)CZF +BFX)JG9 +ZSH)CMC +D36)CY1 +MWD)8CJ +W6D)TVT +39Z)HVH +9CG)XKJ +XJ3)3PM +84R)N9C +1C8)2NW +DC3)ZJP +P67)947 +7GT)NVV +J91)MWD +R9Z)NKQ +415)8VG +T6T)B4L +6J7)F1J +QBX)ZJD +4XC)CVS +3ZM)D1K +NQJ)BGQ +J2P)4QZ +RGW)GB3 +8KD)37Z +56P)S8T +711)KBM +QL5)4H9 +GP9)SH2 +DKR)ZPS +F4R)K5L +54Q)P1P +6L1)NZR +RPT)9CG +G8S)6QW +4JW)KB5 +ZTK)F24 +SWW)GBK +B7V)J5C +Z6S)PD2 +N9S)CF8 +8BC)Q69 +283)543 +TMD)7LC +QV1)RDN +6FD)KKB +BTS)2WG +3ZR)CY5 +5TX)ZKY +9NL)KB8 +97T)GMJ +68B)GRF +FVC)DW2 +L7D)RYL +RL3)B4C +7YX)JJX +NCX)X21 +BJ8)GPB +YST)ZZ1 +MCS)3Z7 +ZXG)FZY +RYL)4Q9 +5NY)GTK +YQ1)T9P +CF6)46K +F7W)WQG +77Z)CY8 +6W2)HJ1 +TT6)R5K +F68)W3S +DSD)VR2 +JWZ)8FS +YSQ)W67 +J8D)W1P +6KV)BX7 +ZRB)WT8 +3B1)RHJ +2FK)K3P +Q49)ZYK +8DN)9CR +SBT)GL4 +HK3)4XL +FFH)X2T +VWG)VZL +954)J78 +2MX)CYB +JM6)S1W +LRZ)SVM +H1F)9YV +C12)FSH +D9J)CTH +9LV)S3K +RJK)DZ7 +5HZ)9WL +ZKK)K4H +TH2)8QQ +P12)QJV +2HT)Z31 +7K3)WZ5 +3C4)TZK +66D)Q7C +TQ1)7GT +2MX)GRY +LQ1)7LJ +46P)YL8 +6SY)2VR +Y6Q)VP8 +YNQ)LRZ +DKS)MKC +Z69)D9N +V96)DGD +YN9)XKF +KF1)JR4 +LW6)W9S +31W)S55 +J1F)WR4 +3ZX)JW7 +4CC)V53 +SJ4)GQC +BXM)VC1 +PV1)JJF +5F3)G28 +WC1)XPM +KY3)78Y +B4C)9YW +8KS)M6N +ZTW)554 +ZSS)SLS +GNW)KC4 +4S8)Y1N +7TR)4V7 +C7H)3RD +LSD)T9B +VQG)11S +PSS)Z12 +MRV)RB5 +WS6)NQ5 +SBS)711 +42N)3RN +CLL)TX1 +K5S)32G +VR2)7S9 +NPR)12Y +924)NCK +BYX)NR1 +Y6D)7D5 +23G)6BT +N9C)W6X +K52)FZM +5NP)ZJB +Q37)R2N +JZY)66D +NZJ)Q23 +WK9)YN9 +S27)D5M +Y1N)WJK +CJ4)5YC +LDC)N86 +LJM)69P +6BT)R5V +LL3)RYK +PMJ)3PF +S44)TZD +D3D)VMD +D1K)4BL +WR4)MB1 +GF6)J9D +9KV)5H7 +SFM)ZPF +KZ7)S79 +DRJ)ZL3 +MFQ)CMB +4XL)ZG2 +SYM)7YP +FH2)K6Q +PVB)LK7 +BVQ)J95 +9S6)GYH +VMR)PMJ +LPK)9NL +MXC)6J7 +K93)ZGG +MDK)GNK +C9L)56Q +46K)H1Z +FTB)3DY +6CX)X9Z +CB6)2YF +SNR)NF3 +J78)XHJ +9V7)R54 +3LD)S1C +M4K)WF2 +TRQ)MHC +BGV)CR2 +LLN)2DY +NQ6)F8B +F6N)31N +74N)TZZ +YHR)M72 +BF6)1YR +7LG)P6F +KTH)X28 +4ZT)T11 +S55)Q98 +PB5)J3V +YG8)X8C +DPM)HW6 +KW4)4HL +ZMY)P4S +J3F)Z2L +NSY)9WX +YVM)XDF +CL2)85Y +K5L)RNK +J2K)1KC +VV3)V4L +Y88)7XT +F4N)ZVH +6HF)NZJ +3WZ)N7L +GV5)M7J +KPJ)7XK +S9Q)MQ5 +Q3L)TP5 +6HF)RVK +ZR1)P5B +JMQ)QL5 +R5Y)LHV +RMD)38Z +VKP)8MN +XPZ)J82 +CR3)61H +R1Q)DD6 +N5L)RLR +FFT)LPK +WM2)WC4 +HG2)QNN +S34)SJV +X4F)MTL +SLS)82Q +32G)TTK +J9M)YXC +R9K)P6T +BNC)MPT +3B5)VS1 +VZH)SGW +MJM)334 +8PS)WGD +S5L)D1Q +138)GBT +VTJ)JMM +ZJP)C85 +FZY)W4B +SHW)3WC +DB1)TQS +9VX)19Z +CF8)HQL +WYX)Z4G +J1J)Q37 +Z75)P3V +PGB)77Z +1C6)SJX +XPG)Q84 +4F1)M9G +D4N)JMD +7JX)Q4X +BMG)V33 +J86)JD1 +KN2)KBD +B87)XDJ +VYJ)4FG +XDF)7ZN +HLF)YQP +7YP)PSB +WRK)6FL +QNN)PL6 +BP7)QW9 +DMQ)BJ8 +Q5V)N4M +XS3)CF5 +WXB)C9Q +P4S)8WW +Z8V)53J +SLL)TQ9 +71Q)Q6Q +3H4)CVR +XHJ)X4Q +3SY)DHH +5W7)DFV +9MB)HY3 +61H)H14 +JR4)ZGR +FDW)11Z +V3H)H7D +R5K)KH2 +KFK)ZVL +CQ3)Y5S +W6X)16K +BSW)FKY +TMQ)1T2 +S4M)BP7 +C9Z)L2J +GRF)Z6D +1T8)2DQ +D97)WHF +ZST)9R5 +VZG)CTQ +CB6)PZC +ZTY)TVW +ZGR)8XF +41Z)F9Y +Q8H)SHW +WVZ)KB6 +3PF)7QD +BDZ)YVM +W1H)7ZV +F5G)DR7 +NM5)3MT +72L)G62 +1H1)68B +WN8)Q2W +9M3)756 +5H7)1RN +DGD)RGQ +DLB)5VL +HZV)VKP +7X3)4WP +NZR)TLD +21Q)MLL +X77)4JP +5R5)7DQ +X28)Y1Q +YRV)BJW +M14)6KB +VZL)FBQ +WD3)CV8 +J9R)KWG +C3G)Y74 +P5B)BHL +HHN)WD3 +FNP)KTL +QGJ)P9B +B6G)9H7 +YFR)919 +FVX)M74 +7XK)V3H +ZVH)ZZJ +TSH)6NP +63H)M1K +W4C)RZH +ZZ1)P48 +QGS)69H +5J9)YDB +S8L)P4X +TP6)MJM +JJF)Z3L +KN2)P7Z +CPK)H1B +3SN)WKF +DCC)F4W +5H6)2F4 +MVY)412 +NRL)GP3 +T44)F4N +T8X)Z3X +8LZ)GR6 +8KT)Q4C +M74)MCC +2L9)S27 +36K)G2N +957)WS5 +TXR)7VJ +B95)ZJR +K9J)BM9 +ZVL)CGZ +7QD)P8Y +ZYK)239 +XTY)YSM +4VQ)MYM +SLZ)YGH +L76)ZB9 +DDQ)MNC +P9B)WQN +DW2)H9Y +WKF)W37 +48V)FHH +76X)3FR +TZZ)8RQ +YDS)NBJ +R4C)C1Q +258)7WF +B3H)TSM +4Z1)L98 +C8V)9NJ +ZKY)D3G +J3G)7Q4 +XN1)S88 +RJZ)6KR +YFD)GSS +8H9)WLN +TTW)D95 +F7H)J9R +H7D)Z2Z +Y25)Q6L +PDC)FZG +783)7TR +8M9)FPK +2GT)PSK +XZG)42B +1KC)PTK +TVK)BHJ +TVH)XMK +2KQ)DPF +ZNC)7DF +VJS)5NP +RV9)375 +RWY)31W +3RS)J5Y +SHF)Y88 +PWS)J2K +VK8)9B6 +J1F)WS6 +5V8)Y9Y +RC3)L7D +2YF)K52 +VV3)TZN +6KB)P78 +7BP)CF6 +R5V)GJS +B2K)CR3 +8MX)LWG +YG7)NND +SD3)PVB +CHP)NLM +HYS)19Q +T2D)D6H +SQ6)BYX +NVV)C3G +TVW)L19 +8W8)SBZ +3Y4)L5V +L2S)XHG +QM7)WQS +239)NCJ +DHH)S2P +1W8)13R +NQ5)7LT +RJK)9J3 +CMK)YRY +STL)5L8 +RYJ)SG8 +3Z7)9V4 +46Y)C6N +GFH)QZG +CMC)FJT +81H)DRJ +L94)8DW +W1X)2P4 +9VT)DF9 +X9J)N9S +CYB)H1F +SJX)VQG +4RP)WM6 +HYW)1C8 +XMJ)Y6Q +TR5)5XZ +LS7)91J +CXM)276 +WH7)BJ6 +FRD)7X3 +BCS)K46 +FKY)BXM +TBN)4Z1 +54B)99H +2B9)JXH +DWW)WL5 +ZS3)SR2 +MDR)DDS +KJD)LZQ +WBM)HX7 +KDP)T5S +2WG)BF6 +RFJ)L65 +3N4)KLK +Q7F)5WZ +K4P)P67 +SS1)PT2 +LV4)11L +8VG)HZV +GL4)BSW +7LC)QSF +RNS)23G +FCS)XLB +LHV)B8K +MD3)8M9 +YRG)SBS +3MP)FXS +Z75)T1M +RRQ)VXV +LD1)7LG +ZFB)Z42 +56J)Q7Y +8ZQ)R43 +N3R)5HC +Y1R)2RW +GMZ)6MN +ZQ8)6YR +GQC)WDX +RD8)D5J +HCG)Y11 +NCK)2L9 +911)Z16 +G81)CJ4 +NTY)3NS +SBZ)HG2 +2VR)SBT +WYX)NQJ +6QQ)6NT +P1P)1CV +CGZ)V48 +RTT)5H6 +7D9)KMY +VTV)54B +F74)FT6 +KB8)RZD +3MT)JWC +56Q)H9C +RHK)865 +XCM)ZQJ +T5Y)GNC +W9S)ZFB +9WL)GV5 +DN6)RX4 +SG8)NCX +P3V)7WW +B8K)8PS +78V)VWZ +FSH)VT4 +KH2)BQP +DJV)N2D +WT8)BVM +ZB9)ZMY +CTH)YKB +24S)FGH +FBQ)7VK +C85)V3D +PK2)RWD +BQP)W84 +H1Z)DNQ +VP8)K4P +DZ7)XPG +45R)PDC +SG5)52G +69H)RM4 +DR7)9M3 +X23)TLQ +VPC)ZQR +5SL)97P +Z59)9LV +JJX)HRV +J9D)Q4S +RJW)WKN +6RQ)QLT +TLR)LLY +KBM)13Y +L9H)952 +XDJ)3RS +JFT)Q1Z +NJ6)XVV +FL5)5TK +L1Q)TK3 +PDS)X7F +5BB)QZB +1RV)154 +PWJ)LZ4 +QPT)5DN +N9C)RCC +DLH)NRL +Z9M)2Q2 +FXS)66F +ZSD)R5G +GMZ)1G1 +K6Q)YQ1 +QHH)SHF +WD2)GFH +MYM)ZP3 +5QF)LQ1 +N2G)C35 +MLL)5QY +JW7)QY6 +X4Q)81H +97S)1L9 +S4G)5QN +9DF)6BG +LMD)HLF +VBN)VHW +4JP)Z13 +ZTW)J8D +V8R)7Q9 +5HZ)2B9 +WV7)K7R +DYV)KJD +1VB)VNX +16Z)52D +M74)J1J +L7D)D3D +D1N)RFJ +GX7)6MS +19Z)H99 +COM)RV4 +B5P)SDH +W1P)M33 +DC7)SQ7 +BTS)85Z +88C)T24 +NDJ)KG5 +4HL)KF1 +M5T)MDS +4YY)GRB +C1Q)K9V +TBN)Y56 +WS5)W1X +BBX)Z8G +XWS)6TS +7DQ)2HT +698)MXC +KV9)CB6 +TD4)S4G +B7Z)H4Q +7D9)DWX +Z3L)2PR +S9Z)2BP +YQF)YND +G62)3Y4 +VNX)GMZ +T6L)S8L +Z13)Z21 +WQS)JM9 +5J8)M14 +15P)8ZQ +CPL)DYL +PL6)R5Y +L8N)MFQ +89H)6W2 +JBC)LW6 +ZP3)XP5 +T2D)G56 +TLD)ZSS +M3J)WK9 +85Y)D5R +FNG)BZ6 +74R)RMD +48N)TZJ +RJJ)ZJV +V4L)M1D +SN3)JZY +85D)1FQ +CY5)SDK +7WW)741 +2KQ)G8S +91J)L8N +LQ1)JHC +66W)Y9Z +GNC)FXP +Z7N)V97 +ZM5)92D +XDK)911 +M6N)W82 +95K)LS7 +VBN)TLR +TK3)TVH +NBJ)45R +1K7)M7X +S31)P3G +WBM)2V5 +7LT)LLN +9NJ)9VT +MLL)SFM +3DY)L3Z +348)S44 +N8N)YSC +5T6)JB5 +2VY)93L +D96)LV4 +SG2)YKF +YB8)LY4 +96H)RGW +W4B)X6N +5L4)KV9 +YQV)GWP +TWX)3MP +H99)DSD +WFB)7J3 +C5T)3MC +6F9)1YX +DWX)XTR +7WF)SFJ +Q1Z)8N9 +YMZ)ZSD +11L)T23 +6LV)W2B +PXS)K6M +952)BYQ +WL5)H9T +GLK)1V5 +XLB)Z75 +4LC)TTW +Y77)FRD +P4X)9W8 +TZ9)JDT +KWG)SG5 +T15)FM3 +2CZ)W8N +4Q9)MCS +K9F)HTD +GTK)B6G +741)VZH +4D4)4YY +9S6)6SG +FGH)GNW +X21)QL6 +W1R)JM6 +89S)JMH +9R5)96K +H2J)C9G +9WX)J9M +WXM)XWS +MQ5)3Q8 +XMK)Z6S +472)FVX +7Q9)QSG +J5C)5GZ +FVT)MTM +M49)85D +13N)BFX +TJD)RM9 +SYF)SJ4 +S3K)9MS +V3S)ZXG +3YL)3HH +ML9)6F9 +BGQ)WC1 +NLM)KDP +2ZC)7TB +F8B)83G +4QZ)Y6D +MZ4)1JW +6V4)YK6 +FCP)QJB +Q84)GP9 +TZK)91L +TS7)4NJ +7VJ)5PQ +B8K)C8K +T4T)B7V +2NW)843 +HNP)PXS +B5P)9KV +XTR)Q49 +FSF)RWK +WGD)ZTY +GLK)RWY +TTC)J2S +ZVW)DQK +R5X)YDS +NNW)ZM5 +K6M)4ZT +QR9)2GT +Q4C)BDN +S2P)22Y +T23)SFD +8KS)RYJ +7TQ)1PP +KPL)48V +D5Q)BMG +1RN)41Q +W5R)8BB +5VL)HTZ +B4F)HG5 +ZJR)R41 +2TR)5PK +JP3)NLZ +59Z)NBS +FJQ)VSJ +DPS)HMT +4D7)TBN +1G1)MLJ +P7T)65X +SDH)W7D +WYF)KN3 +S6L)HWF +DCP)TVK +LK7)W4C +GT7)ZNS +ZJV)TKJ +ZPJ)Y9P +33D)TQ1 +2QV)Y77 +XCW)4DK +NQ6)3Y8 +72Z)8PV +YL8)YCD +JHC)6QQ +F54)DPM +YQ1)5NR +9W8)BNJ +GSS)JNF +V49)BGZ +S4B)DMQ +9CR)1BX +C35)GFD +KFK)YQF +JD7)46T +Z16)J3G +SWW)CFQ +K46)ZSH +154)8KP +Q4X)8RV +KWF)5HZ +NKQ)T8X +M4F)DB1 +YL8)8Q2 +27M)YQ3 +49P)TFC +956)X42 +JWC)FW2 +YXF)H2F +FLB)P1X +GSX)81F +XTR)26G +88W)3SN +8DW)FFH +W84)BS6 +Z2L)YSQ +X9Z)4LC +YRY)3ZM +CF5)97G +31Z)FTB +VHW)YXF +MPT)DNF +G5F)DLH +VM1)BRG +Q4S)ML7 +ST9)JP3 +XMK)P7T +83G)WGV +ZNV)P1T +TKJ)63H +6NT)QMJ +SH2)FVC +W1B)Z4J +1M7)PMB +9W8)31Z +R83)WV7 +MC9)PX3 +ZGG)QPB +1L9)4XC +DPF)RL3 +F8F)C45 +PYT)YVL +9MZ)74N +59Z)3RH +MHC)8SM +SFJ)SLZ +R43)8W5 +7KS)J6V +N3Y)3R8 +L2K)WNK +9P4)XF7 +DNF)377 +XYP)3GG +QZB)1K7 +GMV)N1G +6SG)YZV +P8Y)XBV +GPT)S7K +Q5V)KYB +X27)4JC +756)M4F +FT6)JD7 +RHJ)98Q +FXP)7HW +XFS)HWV +C9G)689 +Y1Q)J9N +46T)JLM +J86)S84 +BM9)NJ6 +F4B)VWG +GF2)VRK +W82)56J +JXH)3C4 +VXV)R67 +WCS)C9L +5TX)CMK +Z41)L2S +RVK)TSH +M7X)Y1D +TZN)73T +JVN)FRX +P6T)3YQ +M33)VH6 +YRX)VK8 +93L)6LV +ZFH)X77 +GTN)TWX +S93)NDP +LZ9)12T +WHF)3ZH +H4Q)8DN +Z42)17Y +HW6)V9H +NQS)3N4 +1PP)MD3 +CZF)BVD +TP5)56P +M72)XK2 +CSC)LTB +8QQ)ZTK +TZX)XMJ +YNQ)C7Z +WJF)37G +5QY)ZR1 +WFC)D3S +YVL)QZC +SRW)5SL +KYB)G81 +6LJ)8JZ +NCK)JVQ +KB6)GF2 +9YW)CLF +9M6)6L1 +F1D)ZKK +7S9)DLM +Y5S)68X +C9Z)K5S +L98)CCR +RCM)2Q6 +8H9)7BP +4Z5)KFK +CTN)NNW +LV4)97T +1C8)VBZ +GBK)QHH +3YL)ZST +M1W)6D5 +MNC)42N +D6H)DKS +VKJ)5W7 +FRX)CHP +NY7)8LZ +Z2W)MZ4 +DFV)TMD +K9V)HNP +K88)3H4 +F4W)V9L +QQ8)2CZ +MBJ)GPT +M2X)Z8V +3Q8)GG3 +RL2)4F1 +81H)WRK +3WX)GQ2 +WDB)BBX +JMD)J3J +HC3)9B3 +CLF)G9N +SL5)LD6 +5F3)MDK +X6N)JVN +B4L)HHN +YPT)F68 +B8W)5F3 +N1C)DX6 +WLT)88W +Y66)D36 +X6J)XZG +CMC)36G +T1Z)3L6 +ZPF)JTZ +C45)MY4 +QPT)YPT +5QL)9N5 +LD3)LJM +TFC)RWL +YQV)CPY +85C)75Q +TR7)CLL +TZZ)ZNV +NND)GLK +GQ2)WBM +QP2)L94 +WJK)HVB +3R8)QG6 +7NR)6BK +2V5)V3P +LZ4)CHX +M3M)NTY +3FG)5J8 +BSH)Z45 +1BX)MSJ +S7K)HF8 +Z93)BTS +5VL)SYN +CTM)MDR +YNJ)951 +D5K)CXM +JDZ)XFS +4CC)FVK +D9N)KPL +4J8)CRG +YBH)QFT +W47)QTD +XYP)13N +8SM)SS1 +MT5)VTJ +2ZB)6VZ +SC1)FNG +4Z8)RRF +XKF)M1W +5NR)CPK +ZPS)JMY +RHJ)8MX \ No newline at end of file diff --git a/2019/06/part1.js b/2019/06/part1.js new file mode 100644 index 0000000..7d95c05 --- /dev/null +++ b/2019/06/part1.js @@ -0,0 +1,30 @@ +const fs = require("fs"); +const text = fs.readFileSync("2019/06/input.txt", "utf-8"); + +let inputArr = text.split('\n'); +let objNet = {}; +let objArr = []; +inputArr.forEach(input => { + points = input.split(')'); + objNet[points[1]] = points[0]; + objArr.push(points[1]); +}) +console.log(objNet); +total = 0; +let i; +objArr.forEach(obj => { + i=0 + getOrigin(obj) + total+=i +}); +console.log(total) + +function getOrigin(obj) { + center = objNet[obj] + if (center) { + i++ + return getOrigin(center) + } else { + return i + } +} \ No newline at end of file diff --git a/2019/06/part2.js b/2019/06/part2.js new file mode 100644 index 0000000..ba653db --- /dev/null +++ b/2019/06/part2.js @@ -0,0 +1,31 @@ +const fs = require("fs"); +const text = fs.readFileSync("2019/06/input.txt", "utf-8"); + +let inputArr = text.split('\n'); +let objNet = {}; +let objArr = []; +inputArr.forEach(input => { + points = input.split(')'); + objNet[points[1]] = {orbits: points[0]}; + objArr.push(points[1]); +}) + +function getOrigin(obj, track, transfers = 0) { + center = objNet[obj] + if (center) { + objNet[obj]["distFrom"+track] = transfers-1; + transfers++; + return getOrigin(center.orbits, track, transfers) + } else { + return transfers + } +} +getOrigin("SAN", "SAN") +getOrigin("YOU", "YOU") + +min = Infinity; +objArr.forEach(obj => { + totalDist = objNet[obj].distFromSAN + objNet[obj].distFromYOU; + min = totalDist < min? totalDist:min; +}) +console.log(min) \ No newline at end of file diff --git a/2019/07/input.txt b/2019/07/input.txt new file mode 100644 index 0000000..d91292b --- /dev/null +++ b/2019/07/input.txt @@ -0,0 +1 @@ +3,8,1001,8,10,8,105,1,0,0,21,30,47,64,81,98,179,260,341,422,99999,3,9,1001,9,5,9,4,9,99,3,9,1002,9,5,9,101,4,9,9,102,2,9,9,4,9,99,3,9,102,3,9,9,101,2,9,9,1002,9,3,9,4,9,99,3,9,1001,9,5,9,1002,9,3,9,1001,9,3,9,4,9,99,3,9,1002,9,3,9,101,2,9,9,102,5,9,9,4,9,99,3,9,1001,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,2,9,4,9,99,3,9,101,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,99,3,9,101,1,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,101,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,99,3,9,1001,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,99,3,9,1001,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,99 \ No newline at end of file diff --git a/2019/07/part1.js b/2019/07/part1.js new file mode 100644 index 0000000..e4a6315 --- /dev/null +++ b/2019/07/part1.js @@ -0,0 +1,91 @@ +const fs = require("fs"); +const text = fs.readFileSync("2019/07/input.txt", "utf-8"); + +let memory = text.split(',').map(opcode => parseInt(opcode)); + +function valueOf(index, paramMode) { + return paramMode == "0" ? memory[memory[index]] : memory[index]; +} + +function fiveDig(value) { + return value.toString().length < 5 ? fiveDig("0" + value) : value.toString(); +} + +function run(phase, input) { + let inputSequence = [phase, input]; + let inputNo = 0; + let outputSequence = [] + let i = 0; + while (true) { + instruction = fiveDig(memory[i]); + opcode = instruction.slice(3); + if (opcode == '01') { + memory[memory[i+3]] = valueOf(i+1, instruction[2]) + valueOf(i+2, instruction[1]); + i+=4; + } else if (opcode == '02') { + memory[memory[i+3]] = valueOf(i+1, instruction[2]) * valueOf(i+2, instruction[1]); + i+=4; + } else if (opcode == '03') { + userInput = inputSequence[inputNo % inputSequence.length]; + inputNo++; + // console.log("IN "+userInput); + memory[memory[i+1]] = userInput; + i+=2; + } else if (opcode == '04') { + outputValue = valueOf(i+1, instruction[2]) + // console.log("OUT "+outputValue); + outputSequence.push(outputValue); + i+=2; + } else if (opcode == '05') { + if (valueOf(i+1, instruction[2]) != 0) { + i = valueOf(i+2, instruction[1]) + } else { + i+=3; + } + } else if (opcode == '06') { + if (valueOf(i+1, instruction[2]) == 0) { + i = valueOf(i+2, instruction[1]) + } else { + i+=3; + } + } else if (opcode == '07') { + memory[memory[i+3]] = valueOf(i+1, instruction[2]) < valueOf(i+2, instruction[1]) ? 1 : 0; + i+=4; + } else if (opcode == '08') { + memory[memory[i+3]] = valueOf(i+1, instruction[2]) == valueOf(i+2, instruction[1]) ? 1 : 0; + i+=4; + } else if (opcode == '99') { + // console.log("HLT") + return outputSequence; + } + } +} + +function test(phaseSequence) { + let output = [0] + phaseSequence.forEach(phase => { + output = run(phase, output[0]); + }) + return output[0]; +} + +function arrayIsUnique(myArray) { + return myArray.length === new Set(myArray).size; +} + +maxSignal = 0; +// inefficient af but idk how else to do it +for (let phase = 0; phase < Math.pow(5, 5); phase++){ + phaseSequence = [phase % 5, Math.floor(phase/5)%5, Math.floor(phase/25)%5, Math.floor(phase/125)%5, Math.floor(phase/625)%5] + if (!arrayIsUnique(phaseSequence)) { + continue; + } + if (phaseSequence == [1, 0, 4, 3, 2]) { + console.log(phaseSequence); + } + thrustSignal = test(phaseSequence); + if (maxSignal < thrustSignal) { + maxSignal = thrustSignal; + } +} +console.log(maxSignal); \ No newline at end of file diff --git a/2019/07/part2.js b/2019/07/part2.js new file mode 100644 index 0000000..b13f2a0 --- /dev/null +++ b/2019/07/part2.js @@ -0,0 +1,168 @@ +const fs = require("fs"); +const text = fs.readFileSync("2019/07/input.txt", "utf-8"); + +let instructions = text.split(',').map(opcode => parseInt(opcode)); + +function fiveDig(value) { + return value.toString().length < 5 ? fiveDig("0" + value) : value.toString(); +} + +function IntcodeAmp(verbose) { + this.verbose = verbose; + + this.reset = function(){ + this.active = false; + this.memory = instructions.slice(); + this.memoryAdress = 0; + if (this.verbose) { + console.log("RESET"); + } + } + this.reset(); + + this.valueOf = function(index, paramMode) { + return paramMode == "0" ? this.memory[this.memory[index]] : this.memory[index]; + } + + this.add = function (a, b){ + this.memory[this.memory[this.memoryAdress+3]] = + this.valueOf(this.memoryAdress+1, b) + + this.valueOf(this.memoryAdress+2, a); + this.memoryAdress+=4; + } + + this.mult = function (a, b){ + this.memory[this.memory[this.memoryAdress+3]] = + this.valueOf(this.memoryAdress+1, b) * + this.valueOf(this.memoryAdress+2, a); + this.memoryAdress+=4; + } + + this.input = function () { + let userInput = this.inputSequence[this.inputNo]; + this.inputNo++; + if (this.verbose){ + console.log("IN "+userInput); + } + this.memory[this.memory[this.memoryAdress+1]] = userInput; + this.memoryAdress+=2; + } + + this.jmpIfNot0 = function(a, b) { + if (this.valueOf(this.memoryAdress+1, b) != 0) { + this.memoryAdress = this.valueOf(this.memoryAdress+2, a) + } else { + this.memoryAdress+=3; + } + } + + this.jmpIf0 = function(a, b) { + if (this.valueOf(this.memoryAdress+1, b) == 0) { + this.memoryAdress = this.valueOf(this.memoryAdress+2, a) + } else { + this.memoryAdress+=3; + } + } + + this.jmpIfLessThan = function(a, b) { + this.memory[this.memory[this.memoryAdress+3]] = + this.valueOf(this.memoryAdress+1, b) < + this.valueOf(this.memoryAdress+2, a) ? 1 : 0; + this.memoryAdress+=4; + } + + this.jmpIfEqual = function(a, b) { + this.memory[this.memory[this.memoryAdress+3]] = + this.valueOf(this.memoryAdress+1, b) == + this.valueOf(this.memoryAdress+2, a) ? 1 : 0; + this.memoryAdress+=4; + } + + this.run = function (inputSequence){ + this.active = true; + this.inputSequence = inputSequence; + this.inputNo = 0; + while (true) { + instruction = fiveDig(this.memory[this.memoryAdress]); + opcode = instruction.slice(3); + if (opcode == '01') { + this.add(instruction[1], instruction[2]); + } else if (opcode == '02') { + this.mult(instruction[1], instruction[2]) + } else if (opcode == '03') { + if (this.inputNo >= this.inputSequence.length) { + return "input required"; + } + this.input(); + } else if (opcode == '04') { + outputValue = this.valueOf(this.memoryAdress+1, instruction[2]) + this.memoryAdress+=2; + return outputValue; + } else if (opcode == '05') { + this.jmpIfNot0(instruction[1], instruction[2]); + } else if (opcode == '06') { + this.jmpIf0(instruction[1], instruction[2]); + } else if (opcode == '07') { + this.jmpIfLessThan(instruction[1], instruction[2]); + } else if (opcode == '08') { + this.jmpIfEqual(instruction[1], instruction[2]); + } else if (opcode == '99') { + this.reset(); + return; + } + } + } +} +amps = [ + new IntcodeAmp(), + new IntcodeAmp(), + new IntcodeAmp(), + new IntcodeAmp(), + new IntcodeAmp() +] + +function test(phaseSequence) { + output = 0; + + for (let i = 0; i < phaseSequence.length; i++){ + amps[i].run([phaseSequence[i]]); + } + + do { + for (amp of amps) { + let ampOut = amp.run([output]); + if (!ampOut) { + break; + } else { + output = ampOut; + } + } + } while (amps[0].active) + + for (amp of amps) { + amp.reset(); + } + + return output; +} + +maxSignal = 0; +// inefficient af but idk how else to do it +function arrayIsUnique(myArray) { + return myArray.length === new Set(myArray).size; +} +for (let phase = 0; phase < Math.pow(5, 5); phase++){ + phaseSequence = [(phase%5)+5, + (Math.floor(phase/5)%5)+5, + (Math.floor(phase/25)%5)+5, + (Math.floor(phase/125)%5)+5, + (Math.floor(phase/625)%5)+5] + if (!arrayIsUnique(phaseSequence)) { + continue; + } + thrustSignal = test(phaseSequence); + if (maxSignal < thrustSignal) { + maxSignal = thrustSignal; + } +} +console.log(maxSignal); \ No newline at end of file diff --git a/2019/README.md b/2019/README.md index 6676713..295d319 100644 --- a/2019/README.md +++ b/2019/README.md @@ -5,6 +5,8 @@ 3 | [:star: :star:](https://adventofcode.com/2019/day/3 "see puzzle") 4 | [:star: :star:](https://adventofcode.com/2019/day/4 "see puzzle") 5 | [:star: :star:](https://adventofcode.com/2019/day/5 "see puzzle") +6 | [:star: :star:](https://adventofcode.com/2019/day/6 "see puzzle") +7 | [:star: :star:](https://adventofcode.com/2019/day/7 "see puzzle") # Languages Used ### Node JS @@ -15,6 +17,8 @@ 3 | :star: 4 | :star: :star: 5 | :star: :star: +6 | :star: :star: +7 | :star: :star: ### Python 3